System and method for detecting and responding to touch inputs with haptic feedback

ABSTRACT

One variation of a system for detecting and responding to touch inputs with haptic feedback includes: a magnetic element rigidly coupled to a chassis; a substrate; a touch sensor interposed between the substrate and a touch sensor surface; an inductor coupled to the substrate below the touch sensor surface and configured to magnetically couple to the magnetic element; a coupler coupling the substrate to the chassis, compliant within a vibration plane approximately parallel to the touch sensor surface, and locating the inductor approximately over the magnetic element; and a controller configured to intermittently polarize the inductor responsive to detection of a touch input on the touch sensor surface to oscillate the substrate in the vibration plane relative to the chassis.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation application is U.S. patentapplication Ser. No. 16/297,426, filed on 8 Mar. 2019, which claims thebenefit of U.S. Provisional Application No. 62/640,138, filed on 8 Mar.2018, each of which is incorporated in its entirety by this reference.

U.S. patent application Ser. No. 16/297,426 is also acontinuation-in-part application of U.S. patent application Ser. No.15/845,751, filed on 18 Dec. 2017, which is a continuation-in-partapplication of U.S. patent application Ser. No. 15/476,732, filed on 31Mar. 2017, which claims the benefit of U.S. Provisional Application No.62/316,417, filed on 31 Mar. 2016, and U.S. Provisional Application No.62/343,453, filed on 31 May 2016, each of which is incorporated in itsentirety by this reference.

This application is related to U.S. patent application Ser. No.14/499,001, filed on 26 Sep. 2014, which is incorporated in its entiretyby this reference.

TECHNICAL FIELD

This invention relates generally to the field of touch sensors and morespecifically to a new and useful human-computer interface system in thefield of touch sensors.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 is a schematic representation of a system;

FIG. 2 is a schematic representation of one variation of the system;

FIG. 3 is a flowchart representation of a method;

FIG. 4 is a flowchart representation of one variation of the method;

FIGS. 5A and 5B are schematic representations of one variation of thesystem;

FIG. 6 is a schematic representation of one variation of the system;

FIG. 7 is a schematic representation of one variation of the system;

FIGS. 8A and 8B are flowchart representations of variation of themethod;

FIGS. 9A and 9B are schematic representations of variations of thesystem;

FIGS. 10A-10C are schematic representations of variations of the method;

FIG. 11 is a schematic representation of one variation of the system;

FIG. 12 is a schematic representation of one variation of the system;

FIGS. 13A-13H are schematic representations of variations of the system;

FIG. 14 is a schematic representation of one variation of the method;

FIGS. 15A-15F are schematic representations of variations of the system;

FIG. 16 is a schematic representation of one variation of the system;and

FIGS. 17A and 17B are schematic representations of variations of thesystem;

FIGS. 18A and 18B are schematic representations of one variation of thesystem;

FIG. 19 is a schematic representation of one variation of the system;

FIGS. 20A and 20B are schematic representations of one variation of thesystem;

FIG. 21 is a schematic representation of one variation of the system;

FIGS. 22A and 22B are schematic representations of one variation of thesystem;

FIG. 23 is a schematic representation of one variation of the system;

FIG. 24 is a schematic representation of one variation of the system;

FIG. 25 is a schematic representation of one variation of the system;and

FIG. 26 is a schematic representation of one variation of the system.

DESCRIPTION OF THE EMBODIMENTS

The following description of embodiments of the invention is notintended to limit the invention to these embodiments but rather toenable a person skilled in the art to make and use this invention.Variations, configurations, implementations, example implementations,and examples described herein are optional and are not exclusive to thevariations, configurations, implementations, example implementations,and examples they describe. The invention described herein can includeany and all permutations of these variations, configurations,implementations, example implementations, and examples.

1. System and Method

As shown in FIGS. 1 and 2, a human-computer interface system(hereinafter the “system”) includes a touch sensor 110, a housing 160,an audio driver 140 (herein after a “speaker”), a vibrator 120, and acontroller 150. The touch sensor 110 includes: an array of senseelectrode and drive electrode pairs 116 patterned across a substrate;and a resistive layer arranged over the substrate in contact with thesense electrode and drive electrode pairs, defining a touch sensorsurface 112 opposite the substrate, and defining a material exhibitingchanges in local bulk resistance responsive to variations in magnitudeof force applied to the touch sensor surface 112. The housing 160 iscoupled to the touch sensor 110 and contains the speaker and thevibrator 120. The controller 150: is configured to trigger the speakerto replay a click sound and to trigger the vibrator 120 to vibrate thehousing 160 during a click cycle in response to application of a forceexceeding a threshold force magnitude on the touch sensor surface 112;and is configured to output a command in response to application of theforce exceeding the threshold force magnitude on the touch sensorsurface 112.

One variation of the system includes: a touch sensor 110 comprising atouch sensor surface 114, comprising an array of sense electrode anddrive electrode pairs 116 arranged over the touch sensor surface 114,and defining a touch sensor surface 112 extending over the array ofsense electrode and drive electrode pairs 116; a vibrator 120 coupled tothe touch sensor 110 and configured to oscillate a mass within a planeparallel to the touch sensor surface 112; an audio driver 140 coupled tothe chassis 130; and a controller 150. In this variation, the controller150 is configured to: detect application of a first input onto the touchsensor surface 112 and a first force magnitude of the first input at afirst time based on a first change in resistance between a first senseelectrode and drive electrode pair in the touch sensor 110; execute afirst click cycle in response to the first force magnitude exceeding afirst threshold magnitude by actuating the vibrator 120 and triggeringthe audio driver 140 to output the click sound; detect retraction of thefirst input from the touch sensor surface 112 and a second forcemagnitude of the first input at a second time succeeding the first timebased on a second change in resistance between the first sense electrodeand drive electrode pair; and execute a second click cycle in responseto the second force magnitude falling below a second threshold magnitudeless than the first threshold magnitude by actuating the vibrator 120and triggering the audio driver 140 to output the click sound.

As shown in FIG. 8A, in one variation, the system executes a method S100for responding to inputs on the touch sensor surface 112, including: ata first time, detecting application of a first input onto a touch sensorsurface 112 and a first force magnitude of the first input in BlockS110; in response to the first force magnitude exceeding a firstthreshold magnitude, actuating a vibrator 120 coupled to the touchsensor surface 112 during a first click cycle and triggering an audiodriver 140 proximal the touch sensor surface 112 to output a click soundduring the first click cycle in Block S120; at a second time succeedingthe first time, detecting retraction of the first input from the touchsensor surface 112 and a second force magnitude of the first input inBlock S112; and, in response to the second force magnitude falling belowa second threshold magnitude less than the first threshold magnitude,actuating the vibrator 120 during a second click cycle distinct from thefirst click cycle and triggering the audio driver 140 to output theclick sound during the second click cycle in Block S122.

1.1 Applications

Generally, the system functions as a human-computer interface devicethat detects inputs by a (human) user, transforms these inputs intomachine-readable commands, communicates these commands to a computingdevice, and supplies feedback indicating that an input was detected tothe user. In particular, the system includes a touch sensor 110 thoughwhich inputs are detected, a haptic feedback module (e.g., a speaker anda vibrator 120) through which feedback is supplied to a user, and acontroller 150 that outputs commands to a computing device based oninputs detected at the touch sensor 110 and that triggers hapticfeedback through the haptic feedback module; and the system can executeBlocks of the method to detect and respond to inputs on the touch sensorsurface 112.

In one example, the system can define a handheld computer pointingdevice (or “mouse”) that, where connected to a computing device,communicates click events to the computing device in response to touchinputs on touch sensor surface 112 that exceed a threshold force (orpressure) magnitude. In this example, the system can issue audible andvibratory (hereinafter “haptic”) feedback to a user in response to sucha touch input in order to mimic the auditory and tactile response of amechanical snap button when depressed and released. In particular, thesystem can: activate the vibrator 120 and trigger the audio driver 140to output a click sound when an input applied to the touch sensorsurface 112 exceeds a first threshold force (or pressure) magnitude inorder to replicate a tactile feel and audible sound of a mechanicalbutton being depressed; and then activate the vibrator 120 and triggerthe audio driver 140 to output a (lower-frequency) click sound when thesame input is lifted to less than a second threshold magnitude—less thanthe first threshold magnitude—on the touch sensor surface 112 in orderto replicate a tactile feel and audible sound of a depressed mechanicalbutton being released. The system can thus provide the user with atactile impression that a button was depressed and released though thesystem itself defines a substantially rigid exo-structure with noexternal moving parts or surfaces (e.g., a button). Furthermore, in thisexample, the system can include a movement sensor 170 (e.g., an opticalor mechanical movement sensor 170), and the controller 150 can outputcursor motion vectors or other commands based on movement of the systemrelative to an adjacent surface detected by the movement sensor 170.

In the foregoing example, the system can also be reconfigurable, such asto function as a remote controller 150 or as a gamepad based on anorientation in which the system is placed on a surface or held in auser's hand. In particular, the system can define a touch sensor surface112 spanning all or a portion of its length and width, and thecontroller 150 can map different commands, gestures, and other outputtypes to discrete subregions of the touch sensor surface 112 based on acurrent function of the system. Furthermore, the system can selectivelyoutput haptic (e.g., audible and tactile) feedback in response to inputson various subregions of the touch sensor surface 112 in variousconfigurations, thereby enabling imitation of multiple combinations andarrangements of mechanical snap buttons in a single device withoutmechanical modification to the device.

The system is described herein as a standalone human-computer interfacecomponent that detects user inputs, provides haptic feedback to the userin response to user inputs, and outputs commands to a connectedcomputing device based on these user inputs. However, the system canalternatively be integrated into a computing device, as described below,or interface with one or more computing devices in any other way.

1.2 Touch Sensor

As shown in FIGS. 1 and 2, the touch sensor 110 includes: an array ofsense electrode and drive electrode pairs 116 patterned across asubstrate (e.g., a fiberglass PCB); and a force-sensing layer arrangedover the substrate in contact with the drive and sense electrode pairs(or “sensels”), defining a force-sensitive material exhibitingvariations in local bulk resistance and/or local contact resistanceresponsive to variations in force applied to a cover layer above. Asdescribed in U.S. patent application Ser. No. 14/499,001, the resistivetouch sensor 110 can include a grid of inter-digitated drive electrodesand sense electrodes patterned across the substrate. The force-sensinglayer can span gaps between each drive and sense electrode pair acrossthe substrate such that, when a localized force is applied to the coverlayer, the resistance across an adjacent drive and sense electrode pairvaries proportionally (e.g., linearly, inversely, quadratically, orotherwise) with the magnitude of the applied force. As described below,the controller 150 can read resistance values across each drive andsense electrode pair within the touch sensor 110 and can transform theseresistance values into a position and magnitude of one or more discreteforce inputs applied to the cover layer.

In one implementation, the system includes a rigid substrate, such as inthe form of a rigid PCB (e.g., a fiberglass PCB) or a PCB on a touchsensor surface 114 (e.g., an aluminum backing plate); and rows andcolumns of drive and sense electrodes are patterned across the top ofthe substrate to form an array of sensels. The force-sensing layer isinstalled over the array of sensels and connected to the substrate aboutits perimeter.

1.3 Controller

Generally, the controller 150 functions to drive the touch sensor 110,to read resistance values between drive and sense electrodes during ascan cycle, and to transform resistance data from the touch sensor 110into locations and magnitudes of force inputs over the touch sensor 110in Blocks S110 and S112. The controller 150 can also function totransform locations and/or magnitudes of forces recorded over two ormore scan cycles into a gesture (as shown in FIG. 10B), a cursor motionvector (as shown in FIG. 10A), or other command and to output suchcommand to a connected computing device, such as over a wired orwireless connection. For example, the controller 150 can accesspreprogrammed command functions stored in memory in the system, such ascommand functions including a combination of mouse and keyboard valuesreadable by a connected computing device to move a virtual cursor,scroll through a text document, expand a window, or translate and rotatea 2D or 3D virtual graphical resource within a window, etc., asdescribed below.

In one implementation, the controller 150 includes: an array columndriver (ACD); a column switching register (CSR); a column driving source(CDS); an array row sensor (ARS); a row switching register (RSR); and ananalog to digital converter (ADC); as described in U.S. patentapplication Ser. No. 14/499,001. In this implementation, the touchsensor 110 can include a variable impedance array (VIA) that defines:interlinked impedance columns (IIC) coupled to the ACD; and interlinkedimpedance rows (IIR) coupled to the ARS. During a resistance scanperiod: the ACD can select the IIC through the CSR and electricallydrive the IIC with the CDS; the VIA can convey current from the drivenIIC to the IIC sensed by the ARS; the ARS can select the IIR within thetouch sensor 110 and electrically sense the IIR state through the RSR;and the controller 150 can interpolate sensed current/voltage signalsfrom the ARS to achieve substantially accurate detection of proximity,contact, pressure, and/or spatial location of a discrete force inputover the touch sensor 110 for the resistance scan period within a singlesampling period.

For example, a row of drive electrodes in the touch sensor 110 can beconnected in series, and a column of sense electrodes in the resistivetouch sensor 110 can be similarly connected in series. During a samplingperiod, the controller 150 can: drive a first row of drive electrodes toa reference voltage while floating all other rows of drive electrodes;record a voltage of a first column of sense electrodes while floatingall other columns of sense electrodes; record a voltage of a secondcolumn of sense electrodes while floating all other columns of senseelectrodes; . . . record a voltage of a last column of sense electrodeswhile floating all other columns of sense electrodes; drive a second rowof drive electrodes to the reference voltage while floating all otherrows of drive electrodes; record a voltage of the first column of senseelectrodes while floating all other columns of sense electrodes; recorda voltage of the second column of sense electrodes while floating allother columns of sense electrodes; . . . record a voltage of the lastcolumn of sense electrodes while floating all other columns of senseelectrodes; . . . and finally drive a last row of drive electrodes tothe reference voltage while floating all other rows of drive electrodes;record a voltage of the first column of sense electrodes while floatingall other columns of sense electrodes; record a voltage of the secondcolumn of sense electrodes while floating all other columns of senseelectrodes; . . . record a voltage of the last column of senseelectrodes while floating all other columns of sense electrodes in BlockS110. The controller 150 can thus sequentially drive rows of driveelectrodes in the resistive touch sensor 110; and sequentially readresistance values (e.g., voltages) from columns of sense electrodes inthe resistive touch sensor 110 in Block S110.

The controller 150 can therefore scan drive and sense electrode pairs(or “sensels”) during a sampling period in Block S110. The controller150 can then merge resistance values read from the touch sensor 110during one sampling period into a single touch image representinglocations and magnitudes of forces (or pressures) applied across thetouch sensor surface 112 in Block S130. The controller 150 can also:identify discrete input areas on the touch sensor surface 112 (e.g., byimplementing blob detection to process the touch image); calculate apressure magnitude on an input area based on total force applied acrossthe input area; identify input types (e.g., finger, stylus, palm, etc.)corresponding to discrete input areas; associate discrete input areaswith various commons; and/or label discrete input areas in the touchimage with pressure magnitudes, input types, commands, etc. in BlockS130. The controller 150 can repeat this process to generate a (labeled)touch image during each sampling period during operation of the system.

1.4 Haptic Feedback Module

The system includes a haptic feedback module, including a vibrator 120and a speaker arranged within the housing 160, as shown in FIGS. 1 and3. Generally, in response to a touch input—on the touch sensor surface112—that exceeds a threshold force (or a threshold pressure), thecontroller 150 can simultaneously trigger the vibrator 120 to output avibratory signal and trigger the speaker to output an audible signalthat mimic the feel and sound, respectively, of actuation of amechanical snap button (hereinafter a “click cycle”) in Block S120, asshown in FIG. 14.

The vibrator 120 can include a mass on an oscillating linear actuator,an eccentric mass on a rotary actuator, a mass on an oscillatingdiaphragm, or any other suitable type of vibratory actuator. Thevibrator 120 can exhibit a resonant (e.g., natural) frequency, and thecontroller 150 can trigger the actuator to oscillate at this resonantfrequency during a click cycle. For example, when the system is firstpowered on, the controller 150 can execute a test routine, includingramping the vibrator 120 from a low frequency to a high frequency,detecting a resonant frequency between the low frequency and the highfrequency, and storing this resonant frequency as an operating frequencyof the vibrator 120 during the current use session. The vibrator 120 canbe arranged within the housing 160 between a bottom of the housing 160and the touch sensor 110. For example, the touch sensor 110 can includean array of sense electrode and drive electrode pairs 116 patternedacross a first side of a PCB, and the vibrator 120 can be installedproximal the center of the opposite side of the PCB.

The haptic feedback module can also include multiple vibrators, such asone vibrator arranged under each half or under each quadrant of thetouch sensor surface 112. In this implementation, the controller 150 canactuate all vibrators in the set during a click cycle. Alternatively,the controller 150 can selectively actuate one or a subset of thevibrators during a click cycle, such as a single vibrator 120 nearestthe centroid of a newest touch input detected on the touch surfacebetween a current and a last scan cycle. However, the haptic feedbackmodule can include any other number of vibrators in any otherconfiguration and can actuate any other one or more vibrators during aclick cycle.

The haptic feedback module also includes a speaker (or buzzer or otheraudio driver) configured to replace a “click” sound during a clickcycle. In one implementation, the housing 160 also includes: a speakergrill, such as in the form of an open area or perforations across aregion of the bottom of the housing 160 opposite the touch sensorsurface 112, for which sound output by the speaker is communicatedoutside of the housing 160; and a set of pads 162 (or “feet”) across itsbottom surface that function to maintain an offset (e.g., 0.085″) gapbetween the speaker grill and a flat surface on which the system isplaced in order to limit muffling of sound output from the speaker bythis adjacent surface, as shown in FIGS. 5A and 5B. In particular, thesystem can include: a housing 160 containing the touch sensor 110, thevibrator 120, the audio driver 140, and the controller 150 and defininga speaker grill adjacent the audio driver 140 and facing opposite thetouch sensor surface 112; and one or more pads, each pad extending fromthe housing 160 opposite the touch sensor surface 112, defining abearing surface configured to slide across a table surface, andconfigured to offset the speaker grill above the table surface by atarget gap distance. Thus, with the system placed on a substantiallyflat surface, the speaker and speaker grill can cooperate to outputsound that is reflected between the bottom surface of the housing 160and the adjacent surface; and this sound may disperse laterally andlongitudinally outward from the housing 160 such that a user may audiblyperceive this sound substantially regardless of his orientation relativeto the system. Alternatively, the housing 160 can define one or morespeaker grills on it side(s), across its top adjacent the touch sensorsurface 112, or in any other position or orientation. Yet alternatively,the haptic feedback module can include a speaker cavity that vibrateswith the speaker when the speaker is driven in order to output a “click”sound from the system.

1.5 Haptics

In response to a touch input—on the touch sensor surface 112—thatexceeds a threshold force (or pressure) magnitude, the controller 150drives both the vibrator 120 and the audio driver 140 substantiallysimultaneously in a “click cycle” in order to both tactilely and audiblymimic actuation of a mechanical snap button, as shown in FIG. 3. Forexample, in response to such a touch input, the controller 150 cantrigger a motor driver to drive the vibrator 120 according to a squarewave for a target click duration (e.g., 250 milliseconds) whilesimultaneously replaying a “click” sound byte through the speaker.During a click cycle, the controller 150 can also lag or lead replay ofthe click sound byte relative to the vibration routine, such as by +/−50milliseconds, to achieve a particular haptic response during a clickcycle.

Furthermore, during a click cycle, the controller 150 can delay audiooutput by the speaker by an “onset time” corresponding to a time for thevibrator 120 to reach a peak output power or peak oscillation amplitudeand within a maximum time for a human to perceive the audio andvibration components of the click cycle as corresponding to the sameevent (e.g., several milliseconds) in Block S112. For example, for avibrator 120 characterized by an onset time of 10 milliseconds, thecontroller 150 can delay audio output by the speaker by 5-10milliseconds after the vibrator 120 is triggered during a click cycle.Therefore, when the controller 150 detects application of a force—thatexceeds a first threshold force (or pressure) magnitude—on the touchsensor surface 112 at a first time in Block S110, the controller 150can: initiate activation of the vibrator 120 at a second timeimmediately succeeding the first time (e.g., within 50 milliseconds ofthe first time and during application of the first input on the touchsensor surface 112); and initiate activation of the audio driver 140 ata third time succeeding the second time by a delay durationcorresponding to an onset time of the vibrator 120 (e.g., 10milliseconds) in which the vibrator 120 reaches a minimum oscillationmagnitude in Block S120.

As described above, the controller 150 can execute a click cycle inresponse to a touch input on the touch sensor surface 112 that meets orexceeds one or more preset parameters in Block S120. For example, thecontroller 150 can initiate a click cycle in response to detection of atouch input on the touch sensor surface 112 that exceeds a thresholdforce or pressure corresponding to a common force or pressure needed todepress a mechanical mouse button (or a mechanical trackpad button orsnapdome, as described below). Therefore, the controller 150 can comparepressures of detected touch inputs on the touch sensor surface 112 to apreset static force or pressure threshold to identify or characterize aninput.

Alternatively, the controller 150 can implement a user-customizedpressure threshold, such as based on a user preference for greater inputsensitivity (corresponding to a lower pressure threshold) or based on auser preference for lower input sensitivity (corresponding to a greaterpressure threshold) set through a graphical user interface executing ona computing device connected to the system. In another example, thecontroller 150 can segment the touch sensor surface 112 into two or moreactive and/or inactive regions, such as based on a current mode ororientation of the system, as described below, and the controller 150can discard an input on an inactive region of the touch sensor surface112 but initiate a click cycle when a touch input of sufficientmagnitude is detected within an active region of the touch sensorsurface 112.

In this implementation, the controller 150 can additionally oralternatively assign unique threshold force (or pressure) magnitudes todiscrete regions of the touch sensor surface 112 and selectively executeclick cycles through a common haptic feedback module response toapplication of forces (or pressures)—on various regions of the touchsensor surface 112—that exceed assigned threshold magnitudes. Forexample, the controller 150 can: assign a first threshold magnitude to aleft-click region of the touch sensor surface 112; and assign a secondthreshold magnitude—greater than the first threshold magnitude in orderto reject aberrant right-clicks on the touch sensor surface 112—to aright-click region of the touch sensor surface 112. In this example, thecontroller 150 can also: assign a third threshold magnitude to a centerscroll region of the touch sensor surface 112, wherein the thirdthreshold magnitude is greater than the first threshold magnitude inorder to reject aberrant scroll inputs on the touch sensor surface 112;but also link the center scroll region to a fourth threshold magnitudefor persisting a scroll event, wherein the fourth threshold magnitude isless than the first threshold magnitude.

1.6 Standard Click and Deep Click

In one variation, the controller 150: executes a “standard click cycle”in Blocks S110 and S120 in response to application of a force thatexceeds a first force magnitude and that remains less than a secondforce threshold (hereinafter a “standard click input”); and executes a“deep click cycle” in Blocks S114 and S124 in response to application ofa force that exceeds the second force threshold (hereinafter a “deepclick input”), such as shown in FIGS. 8B and 10C. In this variation,during a deep click cycle, the controller 150 can drive the vibrator 120for an extended duration (e.g., 750 milliseconds) in order to tactilelyindicate to a user that a deep click input was detected and handled. Thecontroller 150 can also deactivate the speaker or drive the speaker overan extended duration of time during a deep click cycle. In one example,the controller 150 can output a left-click mouse control function (orleft-click trackpad control function, as described below) in response toa standard click input and can output a right-click mouse controlfunction in response to a deep click input. The system can thereforedetect inputs of different force magnitudes on the touch sensor surface112, assign an input type to an input based on its magnitude, servedifferent haptic feedback through the vibrator 120 and speaker based onan input's assigned type, and output different control functions basedon an input's assigned type.

In one example, the controller 150: detects application of a first inputon the touch sensor surface 112 and a first force magnitude of the firstinput at a first time based on a first change in resistance between afirst sense electrode and drive electrode pair below the touch sensorsurface 112 in Block S110; executes a first click cycle over a firstduration (e.g., a standard click cycle) and labels the first input as ofa first input type in response to the first force magnitude fallingbetween the first threshold magnitude and the second threshold magnitudein Block S120. In this example, the controller 150 can also: detectapplication of a second input onto the touch sensor surface 112 and asecond force magnitude of the second input at a second time based on asecond change in resistance between a second sense electrode and driveelectrode pair below the touch sensor surface 112 in Block S114; andexecute a second click cycle over a second duration exceeding the firstduration (e.g., a deep click cycle) and label the second input as of asecond input type distinct from the first input type in response to thesecond force magnitude exceeding the second threshold magnitude in BlockS124.

In another example, the controller 150 can transition or toggle betweeninput modes in response to a deep click input on the touch sensorsurface 112, such as between a first mode in which the controller 150outputs relative position change commands to move a cursor and a secondmode in which the controller 150 outputs absolute position commandsdefining the location of the cursor within a view window (e.g., over adesktop).

The controller 150 can similarly implement multi-level click cycles,such as to execute three, four, or more click cycles as the detectedforce magnitude of an input on the touch sensor surface 112 increases.The controller 150 can also output various commands responsive toapplication of a force on the touch sensor surface 112 that falls withinone of multiple preset force magnitude ranges. For example, for an inputon a region of the touch sensor surface 112 corresponding to a deletekey, as in the variation described below in which the system isintegrated into a mobile computing device, the controller 150 can outputa command to delete a single symbol, to delete a whole word, to delete awhole sentence, and to delete a whole paragraph as the magnitude of anapplied force on the touch sensor surface 112 enters higher, discreteforce ranges.

The controller 150 can implement these haptic effects responsive tomultiple discrete inputs applied to the touch sensor surface 112simultaneously or in rapid sequence. For example, when a user placesmultiple fingers in contact with the touch sensor surface 112, thecontroller 150 can trigger a click cycle in response to detection ofeach finger on the touch sensor surface 112, such as within multipleclick cycles overlapping based on times that magnitudes of forcesapplied by each of these fingers exceed a common threshold magnitude (orexceed threshold magnitudes assigned to corresponding regions of thetouch sensor surface 112). The controller 150 can implement theforegoing methods and techniques responsive to various force (orpressure) magnitude transitions by each of the user's fingers, such asincluding “down” click cycles, “up” click cycles, “deep” click cycles,multiple-level click cycles, etc. for each finger in contact with thetouch sensor surface 112.

1.7 Hysteresis

In one variation shown in FIG. 8A, the controller 150 implementshysteresis to trigger multiple click cycles during application andretraction of a single force input on the touch sensor surface 112 inBlocks S110, S120, S112, and S122. In particular, in this variation, thecontroller 150 selectively activates the vibrator 120 and the speakerwhen a force is both applied to the touch sensor surface 112 and whenthe force is released from the touch sensor surface 112 in order totactilely and audibly replicate the feel and sound of a mechanicalbutton being depressed and, later, released. To prevent “bouncing” whenapplication of a force on the touch sensor surface 112 reaches a firstthreshold magnitude, the controller 150 can execute a single “down”click cycle—suggestive of depression of a mechanical button—for thisinput until the input is released from the touch sensor surface 112.However, the controller 150 can also execute an “up” clickcycle—suggestive of release of a depressed mechanical button—as a forceapplied by the same input decreases to a second, lower thresholdmagnitude. Therefore, the controller 150 can implement hysteresistechniques to prevent “bouncing” in haptic responses to the inputs onthe touch sensor surface 112, to indicate to a user that a force appliedto the touch sensor surface 112 has been registered (i.e., has reached afirst threshold magnitude) through haptic feedback, and to indicate tothe user that the user's selection has been cleared and force applied tothe touch sensor surface 112 has been registered (i.e., the appliedforce has dropped below a second threshold magnitude) through additionalhaptic feedback.

For example, the controller 150 can: trigger a “down” click cycle inresponse to detecting application of an input—on the touch sensorsurface 112—of force magnitude that exceeds grams in Blocks S110 andS120; and can trigger an “up” click cycle (e.g., a shorter andhigher-frequency variant of the down click cycle) as the input isreleased from the touch sensor surface 112 and the applied force on thetouch sensor surface 112 from this input drops below 60 grams in BlocksS112 and S122. In this example, the controller 150 can execute a “down”click cycle in which the vibrator 120 is driven at greater amplitudeand/or greater frequency and in which the speaker outputs alower-frequency sound than for an “up” click cycle. Therefore, thecontroller 150 can execute a “down” click cycle that tactilely andaudibly replicates depression of a mechanical button, which may requireapplication of a force exceeding a transition force; and the controller150 can execute an “up” click cycle that tactilely and audiblyreplicates release of the mechanical button, which may return to itsoriginal position only once the applied force on the mechanical buttondrops significantly below the transition force. Furthermore, contactbetween a mechanical button and a finger depressing the mechanicalbutton may dampen both the sound and the rate of return of a depressedmechanical button, thereby yielding a faster and lower-pitch “snap down”feel and sound than when the physical button is released. The controller150 can thus mimic the feel and sound of a mechanical button whendepressed by executing a “down” click cycle; the controller 150 canmimic the feel and sound of a depressed mechanical button when releasedby executing an “up” click cycle responsive to changes in force appliedby an object in contact with the touch sensor surface 112 over a periodof time.

1.8 Housing

The housing 160 functions to contain and support elements of the system,such as the controller 150, the vibrator 120, the speaker, and the senseand drive electrodes of the touch sensor 110, as shown in FIGS. 1 and 2.As described above, the housing 160 can also define a set of feet 160(or “pads”) that function to support the bottom of the housing 160 overa planar surface on which the system is set upright. In thisimplementation, each foot can include a compressible or othervibration-damping material that functions to mechanically isolate thesystem from the adjacent surface, thereby reducing rattle andsubstantially preserving vibration of the system during a click cycle.

Furthermore, for the system that defines a peripheral human interfacedevice (or “mouse”), each foot can be tipped with a smooth, rigid,and/or relatively low-friction material (e.g., a Teflon film, a nylonbushing) to enable the system—when placed upright on a flat surface—toglide across the surface with relatively minimal resistance. Forexample, in the foregoing implementation, the housing 160 can define arectilinear injection-molded opaque polymer structure and can includeone closed-cell-foam insert at each corner of the rectangular bottom ofthe structure. However, the housing 160 can define any other form andcan be of any other material.

For the system that defines a peripheral human interface device, thehousing 160 can also support one or more movement sensors—such as anLED- or laser-based optical movement sensor 170 or a mechanical movementsensor 170—on its bottom surface opposite the touch sensor surface 112.The controller 150 can sample the movement sensor 170(s) throughoutoperation (or when in a “mouse mode,” as described below) to trackrelative movement of the system across an adjacent surface. The systemcan also transform such relative movement in a cursor vector or othercommand substantially in real-time and transmit this cursor vector orother command to a connected computing device.

1.9 Mouse Gestures

The system can transform an input detected on the touch surface onto oneof various commands, such as based on the initial location, finallocation, speed, force (or pressure) magnitude, etc. of the input on thetouch surface in Block S130. For example, the controller 150 caninterpret an input on the touch surface as one of various mousecommands, such as right click, left click, center click, scroll, andzoom.

In one implementation in which the system operates in a mouse mode, thecontroller 150 selectively associates regions of the touch surface withright click, left click, and center click commands. For example, when auser places her palm over the system and rests one finger (e.g., anindex finger) in contact with the touch sensor surface 112 proximal theanterior end of the system, as shown in FIG. 3, the controller 150 caninterface with the touch sensor 110 to detect this single touch input onthe anterior half of the touch sensor surface 112, can assign this inputa left click command, and can initiate a click cycle and output a leftclick command in response to the force magnitude of this input exceedinga threshold force magnitude assigned to this region of the touch sensorsurface 112. However, when the user rests two fingers on the anteriorhalf of the touch sensor surface 112 (e.g., an index finger and a middlefinger), the controller 150 can interface with the touch sensor 110 todetect both touch inputs, associate a leftmost touch input on theanterior half of the touch sensor surface 112 with a left click command,associate a rightmost touch input on the anterior half of the touchsensor surface 112 with a right click command, and selectively outputleft click and right click commands in response to force magnitudes ofthese touch inputs exceeding a common force magnitude threshold orunique force magnitude thresholds assigned to these regions of the touchsensor surface 112. Furthermore, when the user rests three fingers onthe touch sensor surface 112 (e.g., an index finger, a middle finger,and a ring finger), the controller 150 can interface with the touchsensor 110 to detect all three touch inputs, associate a leftmost touchinput on the anterior half of the touch sensor surface 112 with a leftclick command, associate a touch input on the anterior half of the touchsensor surface 112 laterally between the leftmost and rightmost touchinputs with a center click or scroll command, associate a rightmosttouch input on the anterior half of the touch sensor surface 112 with aright click command, and selectively output left click, center click orscroll, and right click commands in response to force magnitudes ofthese touch inputs exceeding force magnitude thresholds assigned tothese regions of the touch sensor surface 112. The controller 150 cantherefore dynamically associate a touch input on the touch sensorsurface 112 with different command types, such as based on the numberand position of other touch inputs on the touch sensor surface 112.Alternatively, the controller 150 can assign static commands tosubregions of the touch sensor surface 112, such as by assigning a leftclick command to a second (II) quadrant of the touch sensor surface 112and by assigning a right click command to a first (I) quadrant of thetouch sensor surface 112.

In another implementation, the controller 150 interprets touch inputsdetected on the touch sensor surface 112 with a scroll command, as shownin FIGS. 4 and 9A. In this implementation, the controller 150:interfaces with the touch sensor 110 to detect a touch input—such asfrom a user's finger or from a stylus tip—at a first position on thetouch sensor surface 112 at a first time; interfaces with the touchsensor 110 to detect transition of the touch input to a second positionon the touch sensor surface 112 at a second time; identifies the touchinput as a scroll input based on a distance between the first positionand the second position exceeding a threshold distance; determines adirection of the scroll input (e.g., left, right, up, down) based ondirection of a vector from the first position to the second position;and initiates a scroll command accordingly. (In this implementation, thecontroller 150 can also confirm the touch input at the first position asan intentional input in response to the touch input exceeding athreshold force or pressure magnitude on the touch sensor surface 112 atthe first position.) Subsequently, as the user moves her finger orstylus across the touch sensor surface 112 without breaking contact withthe touch sensor surface 112, the controller 150 can output scrollcommands including a scroll distance or scroll speed corresponding to adistance traversed from the first (or second) position. However, once ascroll command is thus initiated, the controller 150 can additionally oralternatively output scroll commands including a scroll distance orscroll speed corresponding to a force magnitude of the touch input. Forexample, once a scroll command—including a scroll direction—isinitiated, the controller 150 can output a scroll speed commandproportional to the force magnitude of the touch input (up to a maximumscroll speed). The controller 150 can therefore initiate a scrollcommand based on traversal of a touch input over a region of the touchsensor surface 112 and can then modify the scroll command based on themagnitude of a force with which the user depresses the touch sensorsurface 112, thereby enabling the user to modulate a scroll speed whenmanipulating a document or other resource viewed on a connectedcomputing device by modifying how firmly she depresses the touch sensorsurface 112 once a scroll command is initiated, as shown in FIG. 4. Thecontroller 150 can continue to sample the touch sensor no and canterminate the scroll command once the touch input is removed from thetouch sensor surface 112 (e.g., once a force or pressure magnitude ofthe touch input falls below a low threshold value).

In another implementation, as a user depresses and rocks (e.g., pitches)a forefinger over the touch sensor surface 112, the controller 150 can:interface with the touch sensor no to detect a corresponding touch inputcharacterized by an approximately ovular touch area at a first time;identify a maximum force within the ovular touch area at the first time;and track the location of the ovular touch area and the position of themaximum force within the ovular touch area from the first time to asecond time. In this implementation, if the centroid position,orientation, or perimeter geometry, etc. of the ovular touch areachanges by less than a threshold value and the position of the maximumforce within the ovular touch area changes by more than a thresholddistance from the first time to the second time, the controller 150 caninterpret this touch input as a scroll command and can initiate a scrollcommand including a direction corresponding to a direction of a vectorfrom the position of the maximum force at the first time to the positionof the maximum force at the second time. With the scroll command thusinitiated, the controller 150 can modulate a scroll speed or scrolldistance of the scroll command based on a magnitude of an aggregateforce across the ovular touch area or based on a magnitude of themaximum force within the ovular touch area.

In another implementation, the controller 150 interprets touch inputsdetected on the touch sensor surface 112 with a zoom command. In thisimplementation, the controller 150: interfaces with the touch sensor 110to detect a first touch input and a second touch input—such as from auser's thumb and index finger—at a first position and at a secondposition, respectively, on the touch sensor surface 112 at a first time;interfaces with the touch sensor 110 to detect transition of the firsttouch input to a third position and transition of the second touch inputto a fourth position on the touch sensor surface 112 at a second time;identifies the touch inputs as a zoom input based on difference betweena first length between the first and second positions and a secondlength between the third and fourth positions differing by more than athreshold distance or proportion; determines a direction of the zoominput (e.g., zoom in, zoom out) based on whether the first distanceexceeds the second distance (e.g., zoom in if the first distance exceedsthe second distance and zoom out if the second distance exceeds thefirst distance); and initiates a zoom command accordingly. (In thisimplementation, the controller 150 can also confirm the touch inputs atthe first and second positions as an intentional input in response tothe one or both of the touch inputs at the first and second positionsexceeding a threshold force or pressure magnitude on the touch sensorsurface 112.) Subsequently, as the user continues to draw her fingerstogether or to spread her fingers apart without breaking contact withthe touch sensor surface 112, the controller 150 can output zoomcommands including a zoom direction, zoom distance, and/or zoom speedcorresponding to a change in distance between the user's fingers fromthe first (or second) length. However, once a zoom command is thusinitiated, the controller 150 can additionally or alternatively outputzoom commands including a zoom distance or zoom speed corresponding to aforce magnitude of the touch inputs. For example, once a zoomcommand—including a zoom direction—is initiated, the controller 150 canoutput a zoom speed command proportional to the force magnitude of oneor both touch inputs (up to a maximum zoom speed) on the touch sensorsurface 112. The controller 150 can therefore initiate a zoom commandbased on traversal of two touch inputs over a region of the touch sensorsurface 112 and can then modify this zoom command based on the magnitudeof a force with which the user depresses the touch sensor surface 112,thereby enabling the user to modulate a zoom speed when manipulating adocument or other resource viewed on a connected computing device bymodifying how firmly she depresses the touch sensor surface 112 once azoom command is initiated, as shown in FIG. 8B. The controller 150 cancontinue to sample the touch sensor 110 and can terminate the zoomcommand once the touch inputs are removed from the touch sensor surface112.

The controller 150 can also define cursor vectors—and output thesecursor vectors to a connected computing device—based on inputs on thetouch sensor surface 112. For example, in response to depression of thetouch sensor surface 112 along the anterior edge of the touch sensorsurface 112, the controller 150 can lock an output cursor vector to avertical axis. Similarly, in response to depression of the touch sensorsurface 112 along the left or right edge of the touch sensor surface112, the controller 150 can lock an output cursor vector to a horizontalaxis. The controller 150 can also lock an output cursor vector along a45° vector and along a 135° vector in response to depression of thetouch sensor surface 112 at the anterior-right and anterior-leftcorners, respectively.

Furthermore, the controller 150 can selectively activate and deactivatecursor control in select regions of the touch sensor surface 112. Forexample, the controller 150 can interpret touch inputs on the anteriorhalf of the touch sensor surface 112 as selection (e.g., “click”),scroll, and zoom commands but can deactivate cursor vector control inthis region, thereby enabling a user to select a virtual object, accessvirtual menus, scroll through a virtual resource, or zoom into and outof a virtual resource on a connected computing device by touching theanterior half of the touch sensor surface 112. However, in this example,the controller 150 can activate cursor vector control in the posteriorhalf of the touch sensor surface 112, thereby enabling a user to controlthe position of a cursor within a graphical user interface on aconnected computing device by both moving the system relative to anadjacent surface and by drawing a finger, stylus, or other implementacross the posterior half of the touch sensor surface 112. In thisexample, the controller 150 can apply a first scale (e.g., 1:1, or arelatively high positional sensitivity) to movements of the systemrelative to an adjacent surface and can apply a second scale (e.g., 1:5,or a relatively low positional sensitivity) to changes in touch inputpositions on the posterior half of the touch sensor surface 112 in orderto generate a composite cursor vector. The controller 150 can thereforeenable a user to quickly move a cursor over relatively large virtualdistances within a graphical user interface by moving the systemrelative to an adjacent surface, and the controller 150 can also enablethe user to achieve a relatively high degree of cursor position controlby drawing a finger, stylus, or other implement over the posterior endof the touch sensor surface 112.

However, the controller 150 can segment regions of the touch sensorsurface 112 according to any other static or dynamic schedule and canassociate these regions with any other command or function in Block S130

1.10 Context-Aware Gestures

In one variation, the system selectively operates two or mode modes,such as a mouse mode, a remote controller 150 mode, and a gamepad mode,as shown in FIGS. 9A and 9B. In one implementation, the system operatesin a mouse mode—and implements methods and techniques as describedabove—when the movement sensor 170 detects an adjacent surface, such asa surface that does not change in depth from the bottom of the housing160 by more than a threshold distance per unit time. In thisimplementation, the system can also exit the mouse mode and can prepareto enter either of a remote controller 150 mode or a gaming controller150 mode when the movement sensor 170 detects that an adjacent surfaceis not present or detects variations in proximity of an adjacent surfaceby more than the threshold distance per unit time.

The system can also include an accelerometer, gyroscope, magnetometer,or other motion sensor and can enter select modes based on outputs ofthe motion sensor. For example, the system can enter and remain in themouse mode if outputs of the motion sensor indicate that the system isin an upright orientation (or within an upright orientation range, suchas +/−10° in pitch and roll from a (0°, 0°) pitch and roll orientation).However, if the system is held in a portrait orientation (and if themovement sensor 170 does not detect an adjacent or reliable surface),the system can enter the remote controller 150 mode. Similarly, if thesystem is held in a landscape orientation (and if the movement sensor170 does not detect an adjacent or reliable surface), the system canenter the gamepad mode.

Furthermore, if the movement sensor 170 detects an adjacent or reliablesurface, the system can selectively enter the remote controller 150 modeand gamepad mode based on positions of touch inputs on the touch sensorsurface 112. For example, once the system has transitioned out of themouse mode, the system can enter the remote controller 150 mode if asingle touch input (e.g., a thumb) is detected on the touch sensorsurface 112, and the system can enter the gamepad mode if two touchinputs (e.g., two thumbs) are detected on the touch sensor surface 112.However, the system can selectively enter and exit two or more modesbased on outputs of any other mechanical, optical, acoustic, or othersensor within the system. The controller 150 can then implement methodsand techniques as described above to transform inputs on the touchsensor surface 112 into commands or other functions (e.g., commandspredefined and preloaded onto the system) based on the currentoperational mode of the system.

Alternatively, the system can transition between modes based on one ormore touch inputs detected on the touch sensor surface 112. For example,the system: can enter the mouse mode in response to detection of twodeep click inputs (described above) on the anterior region of the touchsensor surface 112; can enter the remote controller 150 mode in responseto detection of one deep click input proximal the lateral andlongitudinal center of the touch sensor surface 112; and can enter thegamepad mode in response to substantially simultaneous detection of onedeep click input on the anterior region of the touch sensor surface 112and one deep click input on the posterior region of the touch sensorsurface 112

In one implementation of the game controller 150 mode, the controller150 can fuse the location and force magnitude of an input on the touchsensor surface 112 into a joystick vector. For example, in the gamepadmode, the controller 150 can designate a subregion (e.g., a circularsubregions) of the touch sensor surface 112 as a joystick region. Inresponse to detection of an input within this joystick region, thecontroller 150 can: calculate a centroid of the touch input area (oridentify a point of maximum force input within the touch input area);calculate an angular offset of the touch input area centroid (or pointof maximum force input) within a coordinate system centered at thecenter of the joystick region; and generate a joystick vector includinga direction defined by this angular offset and a magnitude correspondingto the maximum, average, or aggregate force magnitude of the touchinput. In this example, the controller 150 can also scale the magnitudeof the joystick vector based on a distance from the center of thejoystick region (e.g., the origin of the coordinate system) to thecentroid (or the point of maximum force) of the touch input. The controlcan thus merge both the position of an touch input and the force (orpressure) magnitude of the touch input into a joystick vector in thegamepad mode and then output this joystick vector to a connectedcomputing device, such as to control a cursor position within a windowor to control a first-person viewing position within a gaming interfaceon the computing device.

1.11 Movable Stylus Surface

In one variation, the system outputs cursor vectors (or cursor positioncommands, etc.) based on both changes in the position of the systemrelative to an adjacent surface and changes in the position of a touchinput on the touch sensor surface 112. In this variation, the system caninclude two (or more) movement sensors laterally and/or longitudinallyoffset across the bottom surface of the housing 160; and the controller150 can sample each movement sensor 170 throughout operation and trackchanges in the lateral (e.g., X-axis) position, longitudinal (e.g.,Y-axis) position, and yaw (e.g., arcuate position about a Z-axis) of thesystem during operation based on outputs of these movement sensors.Furthermore, throughout operation, the controller 150 can sample thetouch sensor 110 and track a continuous touch input—such as by a fingeror stylus—across the touch sensor surface 112. The controller 150 canthen: project a change in the position of a touch input between twoconsecutive sampling periods onto a change in the position of thehousing 160—as determined by comparing outputs of the movementsensors—between the same sampling periods in order to determine a globalchange in the position of the touch input relative to an adjacentsurface between the two sampling periods; and output this globalposition change as a cursor vector (or cursor position command, etc.) toa connected computing device.

In one example of this variation, with the system placed face-up on aflat surface, such as a desk, a user holding a stylus in her right handmay place her right palm on the posterior half of the touch sensorsurface 112 and may then draw the tip of the stylus over the anteriorhalf of the touch sensor surface 112. The controller 150 cansystematically sample the touch sensor 110, such as at a rate of Hz, andcan implement pattern matching, edge detection, object recognition, orother techniques to identify the user's palm and the tip of the stylusin each “frame” read from the touch sensor 110. The controller 150 canthen reject the user's palm as an input and instead output cursorvectors based on changes in the position of the stylus on the anteriorhalf of the touch sensor surface 112. However, as the user continues todraw the stylus across the touch sensor surface 112, the user may alsomove the system relative to the desk below. The controller 150 can thus:track such motion of the system relative to the desk based on outputs ofthe movement sensors; merge such detected positional changes of thesystem with changes in the position of the stylus tip on the touchsensor surface 112 occurring over substantially identical periods oftime (e.g., eight-millisecond durations between sampling periods) inorder to calculate global positional changes of the stylus tip relativeto the desk; and output a cursor vector (or other cursor motion command)accordingly. The system may therefore enable a user to draw on arelatively small (e.g., a 1.8″ wide by 3.6″ long) touch sensor surface112 while also moving the touch sensor 110 over a larger (e.g., a24″-square desk) area with a single hand. In particular, the system canmerge micro positional changes of the stylus tip relative to the systemand macro positional changes of the system relative to the desk in orderto calculate a global positional change of the stylus, thereby enablingthe user to draw within a relatively large virtual area within anapplication executing on the connected computing device through arelatively small touch sensor surface 112. For example, the system canenable the user to enter a handwritten line of text 8″ wide on a1.8″-wide touch sensor surface 112 in to a connected computing device orenter lines of a 12″-square sketch in a virtual sketch window via a 1.8″wide by 3.6″ long touch sensor surface 112.

1.12 Cover Layer

In one variation, the system includes a cover layer arranged over thetouch sensor surface 112. In this variation, the cover layer can definea curvilinear and/or deformable (“e.g., “soft,” low durometer) controlsurface over the (planar) touch sensor 110 and can mechanicallycommunicate inputs on the control surface onto the touch sensor surface112.

In one implementation, the cover layer includes a foam pad of uniformthickness (e.g., 0.025″) and uniform durometer (e.g., Shore 25) faced ona first side in a textile (e.g., fabric, leather) and mounted over thetouch sensor 110 on an opposing side. In this implementation, the touchsensor 110 can define a relatively rigid structure (e.g., Shore 80 orgreater), and the cover layer can define a relatively supple (e.g.,deformable, flexible, elastic, compressible) layer over the touch sensor110. The textile can thus define a control surface offset above thetouch sensor surface 112 by the foam pad, and the foam pad (and thetextile) can compress between a finger and the touch sensor surface 112as a user depresses the control surface with her finger. Because thetouch sensor 110 is configured to detect a range of magnitudes of forcesapplied to the touch sensor surface 112, the touch sensor 110 can detectsuch input. Also, though the foam pad may disperse the applied force ofthe user's finger over a greater contact area from the control surfaceto the touch sensor surface 112, the controller 150 can sum input forcescalculated at discrete sensor pixels across the touch sensor 110 tocalculate a total force applied to the control surface. The controller150 can also calculate the centroid of a contiguous cluster of discretesensor pixels that registered a change in applied force to determine theforce center of the input.

In the foregoing implementation, the control layer of the cover layercan also include embossed regions, debossed regions, decals, etc. thatdefine tactile indicators of active regions of the touch sensor 110,inactive regions of the touch sensor 110, functions output by the systemin response to inputs on such regions of the control surface, etc.

In another implementation, the cover layer includes a pad of varyingthickness faced on a first side in a textile and mounted over the touchsensor 110 on an opposing side. In one example, the pad includes a foamstructure of uniform durometer and defining a wedge profile that tapersfrom a thick section proximal the posterior end of the touch sensor 110to a thin section proximal the anterior end of the touch sensor 110. Inthis example, due to the varying thickness of the pad, the pad cancommunicate a force applied near the posterior end of the controlsurface into the touch sensor 110 onto a broader area than a forceapplied near the anterior end of the control surface; the system canthus exhibit greater sensitivity to touch inputs applied to the controlsurface nearer the anterior end than the posterior end of the controlsurface. In another example, the pad similarly includes a foam structureor other compressible structure defining a wedge profile that tapersfrom a thick section proximal the posterior end of the touch sensor 110to a thin section proximal the anterior end of the touch sensor 110(e.g., as shown in FIG. 5B). However, in this example, the foamstructure can exhibit increasing durometer from its posterior end to itsanterior end to compensate for the varying thickness of the pad suchthat the system exhibits substantially uniform sensitivity to touchinputs across the control surface.

However, the cover layer can define any other uniform thickness orvarying thickness over the touch sensor surface 112. For example, thecover layer can define a domed or hemispherical profile over the(planar) touch sensor surface 112. The cover layer can also be facedwith any other textile or other material. The system can then implementmethods and techniques described above to detect inputs on the controlsurface—translated onto the touch sensor surface 112 by the coverlayer—and to output control functions according to these inputs.

1.13 Mouse Overlays

In one variation, the system defines a standalone touch sensor 110 andphysically interfaces with two or more distinct overlays correspondingto different operating modes of the system, as shown in FIGS. 5A, 5B, 6,and 7. In this variation, the system and the overlays can define ahuman-computer interface “kit.”

In one implementation, the kit includes a mouse overlay 164 configuredto transiently receive the system and defining a control surface overthe touch sensor surface 112, such as a planar, domed, hemispherical, orwaveform-profile control surface, as described above. For example, themouse overlay 164 can define a curvilinear profile tapering from a firstthickness proximal its posterior end and tapering to a second, lesserthickness toward its anterior end and sized for cupping inside a user'spalm with the user's index and middle fingers extending toward theanterior end of the mouse overlay 164, as shown in FIGS. 5A and 5B. Inthis example, the mouse overlay 164 can define a control surface that isembossed, debossed, or of varying texture or surface profile (e.g.,debossed perimeters around a left-click region, a right-click region,and a scroll wheel region) in order to tactilely indicate various inputregions corresponding to different commands associated with the mouseoverlay 164.

The mouse overlay 164 can further define a cavity configured totransiently (i.e., removably) engage the system, as shown in FIG. 5B.For example, the mouse overlay 164 can define: a cavity opposite thecontrol surface; and a retention ring or undercut around the perimeterof the cavity configured to retain the system in the cavity when thesystem is “snapped” into the cavity. Alternatively, the mouse overlay164 can include one or more magnets adjacent the cavity and configuredto magnetically couple to ferrous elements arranged within the housing160 (or vice versa) to retain the system within the cavity. However, themouse overlay 164 can include any mechanism or feature configured totransiently retain the system on or within the mouse overlay 164.

Furthermore, the mouse overlay 164 can include integrated slip feetvertically offset below the cavity. With the mouse overlay 164 andsystem assembled, the integrated slip feet can set and maintain a gapbetween the movement sensor 170 on the bottom of the system and asurface on which the assembly is placed and manipulated. As describedabove, each integrated slip foot can be tipped with a smooth, rigid,and/or relatively low-friction material to enable the assembly to glideacross an adjacent planar surface with relatively minimal resistance.Each integrated slip foot can also include a compressible (e.g., foam)structure configured to mechanically isolate the assembly from theadjacent planar surface, as described above.

Therefore, in this implementation, the overlay 164: can define athree-dimensional ergonomic mouse form; can be configured to transientlyinstall over the touch sensor surface 112; and can include an elasticmaterial configured to communicate a force applied to the overlay 164surface downward onto the touch sensor surface 112.

In another implementation, the kit includes a remote controller 150overlay 164, as shown in FIG. 7. The remote controller overlay candefine a rectilinear or curvilinear profile sized for grasping—in auser's palm—in a portrait orientation with the user's thumb extendingover the control surface toward the anterior end of the remotecontroller overlay. The remote controller overlay can also define acontrol surface embossed, debossed, or otherwise tactilely or visuallylabeled with indicators for regions corresponding to different inputtypes, such as: volume UP and volume DOWN regions; left, right, up, anddown scroll regions; a pause/play region; and/or a select region. Likethe mouse overlay 164, the remote controller overlay can further definea cavity configured to transiently receive the system. Alternatively,the remote controller overlay can include a film configured forapplication over the touch sensor surface 112. For example, the remotecontroller overlay can include: a silicone film with embossed, debossed,and/or ink-labeled areas delineating corresponding command types; and anadhesive backing configured to transiently adhere the silicone film tothe touch sensor surface 112 of the system.

The kit can further include a gamepad overlay that similarly defines aplanar or curvilinear profile sized for grasping between a user's twohands in a landscape orientation with the user's thumbs extending overthe control surface toward the left or right side of the gamepadoverlay, as shown in FIG. 6. The gamepad overlay can define a controlsurface embossed, debossed, or otherwise including tactile or visualindicators for regions corresponding to different commands, such as: aright and left analog joystick; a D-pad; a set of face buttons; a set ofleft and right shoulder buttons; a select/back button; a select/forwardbutton; a menu button, and/or a home button. Like the mouse overlay andthe remote controller overlay, the gamepad overlay can define a cavityconfigured to transiently receive and retain the system. Alternatively,the gamepad overlay can define a film configured to be transientlyapplied over the touch sensor surface 112, as described above.

The controller 150 can also identify an overlay into which it has beentransiently installed and reconfigure its outputs—in response to inputscommunicated from the control surface onto the touch sensor surface112—based on the type of overlay identified. For example: the system caninclude a set of magnetic field (e.g., Hall-effect) sensors; eachoverlay in the set can include a unique arrangement of magnets that facethe magnetic field sensors when the system is installed in the overlay;and the system can identify an overlay in which it is installed based onoutputs of the magnetic field sensors, retrieve a corresponding outputconfiguration stored in local memory in the system, and then outputsignals—in response to inputs on the control surface—according to thisoutput configuration. In other examples, each overlay can include anintegrated circuit encoded with an overlay type; and the system candownload the overlay types from a connected overlay over a wiredconnection or via wireless communication protocol, select an outputconfiguration corresponding to the overlay type, and output signalsaccordingly until the system is removed from the overlay. Similarly,each overlay can include an integrated circuit encoded with a completetouch sensor output configuration; and the system can download thiscomplete output configuration from a connected overlay via wired orwireless communication protocol and can implement this outputconfiguration accordingly until the system is removed from the overlay.

The system and an overlay in the kit can also define directionalfeatures that permit assembly of the system and the overlay in a singleorientation. For example, the system can define an extruded rectangulargeometry with a notch in the left corner of its posterior end; and theoverlay can define an extruded rectangular cavity with a correspondingnotch in the left corner of its posterior end that permits the system tobe installed in the cavity in only one way. The controller can thusinterpret inputs on the control surface of this overlay based on thisknown orientation of the overlay relative to the system. Alternatively,the system can include one or more sensors (e.g., a Hall effect sensor)that detect the orientation of the system relative to the overlay (e.g.,based on detection of a magnetic field from a magnet integrated into theoverlay); the control can then populate a command region layout for thetouch sensor surface 112 based on this detected orientation of theoverlay relative to the system.

2. Integrated Trackpad

As shown in FIG. 11, one variation of the system for human-computerinterfacing includes: a touch sensor 110; a coupler 132; a vibrator 120;a speaker (i.e., the audio driver 140); and a controller 150. The touchsensor 110 includes: a substrate; an array of sense electrode and driveelectrode pairs 116 patterned across the substrate; and a resistivelayer arranged over the substrate, defining a touch sensor surface 112opposite the substrate, and including a material exhibiting changes inlocal bulk resistance responsive to variations in magnitude of forceapplied to the touch sensor surface 112. The coupler 132 is configuredto mount the substrate to a chassis 130 of a computing device and topermit movement of the substrate within a vibration plane parallel to abroad planar face of the substrate. The vibrator 120 is configured tovibrate the substrate within the vibration plane during a click cycle.The speaker is configured to replay a click sound during the clickcycle. The controller 150 is configured to: trigger the speaker toreplay a click and to trigger the vibrator 120 to vibrate the housing160 during a click cycle in response to application of a force exceedinga threshold force magnitude on the touch surface; and to output acommand in response to application of the force exceeding the thresholdforce magnitude on the touch surface

A similar variation of the system for interfacing a computer system anda user includes: a touch sensor 110 comprising a touch sensor surface114, comprising an array of sense electrode and drive electrode pairs116 arranged over the touch sensor surface 114, and defining a touchsensor surface 112 extending over the array of sense electrode and driveelectrode pairs 116; a vibrator 120 coupled to the touch sensor 110 andconfigured to oscillate a mass within a plane parallel to the touchsensor surface 112; a chassis 130; a coupler 132 interposed between thetouch sensor 110 and the chassis 130 and configured to absorbdisplacement of the touch sensor 110 relative to the chassis 130parallel to the touch sensor surface 112 during activation of thevibrator 120; an audio driver 140 coupled to the chassis 130; and acontroller 150. In this variation, the controller 150 is configured to:detect application of a first input onto the touch sensor surface 112and a first force magnitude of the first input at a first time based ona first change in resistance between a first sense electrode and driveelectrode pair in the touch sensor 110; execute a first click cycle inresponse to the first force magnitude exceeding a first thresholdmagnitude by driving the vibrator 120, the touch sensor 110 within thechassis 130, and triggering the audio driver 140 to output the clicksound; and output a first touch image representing a first location andthe first force magnitude of the first input on the touch sensor surface112 at approximately the first time.

2.1 Applications

Generally, in this variation, the system includes elements andimplements methods and techniques described above to define anhuman-computer interface device that detects inputs by a (human) user,transforms these inputs into machine-readable commands, communicatesthese commands to a computing device, and supplies feedback to the userindicating that an input was detected. In particular, the systemincludes a touch sensor 110 through which inputs are detected, a hapticfeedback module (e.g., a speaker and a vibrator 120) through whichfeedback is supplied to a user, and a controller 150 that outputscommands to a connected computing device based on inputs detected at thetouch sensor 110 and that triggers haptic feedback through the hapticfeedback module.

The system can be integrated into a computing device to define a touchsensor surface 112, such as spanning an integrated trackpad and/or anintegrated keyboard, as shown in FIGS. 12, 15A, 15B, 15C, 15D, 15E, and15F. The system detects inputs on the touch sensor surface 112, such asapplication of a finger or stylus that exceeds a threshold minimumapplied force or pressure, and issues audible and vibratory (hereinafter“haptic”) feedback to a user in response to such an input in order tomimic the auditory and tactile response of a mechanical snap button thatis depressed and released. The system can thus provide a user with animpression that a mechanical button was depressed and released thoughthe system defines a touch sensor surface 112 that is verticallyconstrained. When integrated into a computing device, such as a laptopcomputer, the system can output keystrokes, cursor vectors, and/orscroll commands, etc. based on inputs detected on the touch sensorsurface 112, and the computing device can execute processes or update agraphic user interface rendered on an integrated display based on suchcommands received from the system. Alternatively, the system can beintegrated into a peripheral device, such as a peripheral keyboard or aperipheral keyboard with integrated trackpad.

The system is described herein as an integrated human-computer interfacecomponent that detects user inputs, provides haptic feedback to the userin response to user inputs, and outputs commands to another processingunit or controller 150 within the integrated computing device based onthese user inputs. However, the system can alternatively definestandalone or peripheral devices that can be connected to anddisconnected from a computing device and can, when connected, outputcommands to the computing device based on inputs detected on the touchsensor surface 112. For example, the system can define a remotecontroller 150, a game controller 150, a landline phone, a smartphone,or a wearable, etc.

2.2 Integration

In this variation, the system is integrated into a computing device(e.g., rather than defining a peripheral interface device configured totransiently connect to a computing device). In one implementation, thesystem can function as an integrated trackpad adjacent a keyboard in alaptop computer. In this implementation, the touch sensor surface 112and the vibrator 120 can be mechanically isolated from a structure of acomputing device in order to substantially preserve communication ofvibrations through the touch sensor surface 112 during a click cycle.For example, the housing 160—including the vibrator 120 and the senseand drive electrodes and the supporting touch sensor 110—can be isolatedon its top, bottom, and/or sides by compressible foam pads that suspendthe housing 160 from a casing of the computing device. In anotherexample, the housing 160 can be coupled to the casing of the computingdevice by fluid-filled dampers. Therefore, in this implementation, thechassis 130 can include a housing 160 of a mobile computing device anddefine a receptacle 134; and the coupler 132 can locate the touch sensor110 within the receptacle 134. In this implementation, the system caninclude an audio driver 140, as described above, arranged in the housing160 and thus mechanically isolated from the structure of the computingdevice; the computing device can thus include a primary speaker (or aset of primary speakers) and can include the system that includes asecondary speaker that replays a click sound—independently of theprimary speakers—during a click cycle to mimic the sound of an actuatedmechanical snap button. Alternatively, in this implementation, thesystem can exclude a speaker, and the controller 150 can replay a clicksound through one or more primary speakers integrated into the computingdevice.

2.3 Touch Sensor+Controller

In this variation, the touch sensor 110 and controller 150 can includeelements and execute functions similar to those above to detect inputsand magnitudes of inputs over the touch sensor surface 112, such asbased on changes in resistance between sense electrode and driveelectrode pairs in the touch sensor 110.

Furthermore, the controller 150 can be arranged on the substrate of thetouch sensor 110 to form a fully contained touch sensor 110 that:receives power from the connected computing device; detects inputs onthe touch sensor surface 112; outputs haptic feedback, such as in theform of a mechanical vibration and sound, in response to detectedinputs; and outputs commands corresponding to detected inputs on thetouch sensor surface 112. Alternatively, all or portions of thecontroller 150 can be remote from the substrate, such as arranged withinthe connected computing device and/or physically coextensive with one ormore processors with other controllers within the computing device.

2.4 Haptic Feedback Module

In this variation, the system includes a vibrator 120 and a speaker, asdescribed above. For example, the vibrator 120 can include a masscoupled to an oscillating linear actuator that, when activated,oscillates the mass along a single actuation axis. In this example, thevibrator 120 can be coupled to the substrate with the actuation axis ofthe vibrator 120 parallel to the vibration plane of the system, and thecoupler 132 can constrain the substrate in all but one degree oftranslation substantially parallel to the actuation axis of the vibrator120. In another example, the vibrator 120 includes an eccentric masscoupled to a rotary actuator that rotates the eccentric mass about anaxis of rotation when actuated. In this example, the vibrator 120 can becoupled to the substrate with the axis of rotation of the vibrator 120perpendicular to the vibration plane of the system, and the coupler 132can constrain the substrate in all but two degrees of translation normalto the axis of rotation of the vibrator 120. Alternatively, the vibrator120 can include a mass on an oscillating diaphragm or any other suitabletype of vibratory actuator. The vibrator 120 can also include apiezoelectric actuator, a solenoid, an electrostatic motor, a voicecoil, or an actuator of any other form or type configured to oscillate amass.

As described above, the system also includes a speaker (or buzzer orother audio driver 140) configured to output a “click” sound during aclick cycle. In this variation, the speaker can be arranged on thesubstrate and move with the substrate during a click cycle. In thisimplementation, the resistive layer can include one or more perforationsthat define a speaker grill over the speaker, and the speaker can outputsound through the perforation(s) to a user. Alternatively, the perimeterof the resistive layer can be offset inside a receptacle 134 in thecomputing device in which the substrate and resistive layer are housedin order to form a gap between the computing device and the resistivelayer, and the speaker can output sound that is communicated throughthis gap to a user. For example, the speaker can be arranged on thesubstrate opposite the touch sensor surface 112; and the touch sensorsurface 112 can define a trackpad surface inset from one or more edgesof the receptacle 134 to form a gap configured to pass sounds output bythe speaker.

Alternatively, the speaker can be arranged remotely from the substrate.For example, the speaker can define a discrete (e.g., a primary) speakerarranged within the computing device's chassis 130. In these examples,the computing device can thus include a primary speaker (or a set ofprimary speakers), and the system—integrated into the computingdevice—can include a secondary speaker that replays a clicksound—independently of the primary speakers—during a click cycle tomimic the sound of an actuated mechanical snap button. Alternatively,the speaker can be physically coextensive with the primary speaker ofthe computing device, and the primary speaker can output both a “click”sound and recorded and live audio (e.g., music, an audio track of avideo replayed on the computing device, live audio during a video orvoice call) substantially simultaneously.

Furthermore, when an audio system within the computing device is mutedby a user, the computing device can mute all audio output from thecomputing device except “click” sounds in response to inputs on thetouch sensor surface 112. Similarly, the computing device can triggerthe speaker to output “click” sounds at a constant decibel level (or“loudness”) regardless of an audio level set at the computing device inorder to maintain a substantially uniform “feel” of an input on thetouch sensor surface 112 despite various other functions executed by andsettings on the computing device. Therefore, in this implementation inwhich the speaker is integrated into the computing device (e.g., mountedto the chassis 130 remotely from the touch sensor 110) and defines aprimary speaker in the mobile computing device, the controller 150 isconfigured to trigger the audio driver 140 to output the click sound ata static, preset volume independent of a global volume setting of themobile computing device.

2.5 Coupler

The coupler 132 is configured to mount the substrate to a chassis 130 ofa computing device and to permit movement of the substrate within avibration plane parallel to a broad planar face of the substrate.Generally, the coupler 132 constrains the substrate against the chassis130 of a computing device (e.g., a laptop computer) but permits thesubstrate, the vibrator 120, and the resistive layer to oscillate withina plane substantially parallel to the touch sensor surface 112 during aclick cycle.

In one example in which the vibrator 120 oscillates a mass linearlyalong an X-axis of the system perpendicular to the Z-axis and parallelto the vibration plane, the coupler 132 can (approximately) constrainthe substrate in five degrees of freedom, including rotation about anyaxis and translation along both the Y- and Z-axes of the system, and thecoupler 132 can permit the substrate to translate (substantially) onlyalong the X-axis of the system when the vibrator 120 is actuated duringa click cycle. In another example in which the vibrator 120 includes aneccentric mass coupled to the output shaft of a rotary actuator and inwhich the output shaft of the rotatory actuator is normal to the touchsensor surface 112 (i.e., parallel to a Z axis of the system), thecoupler 132 can (approximately) constrain the substrate in four degreesof freedom, including rotation about any axis and translation along theZ axis, and the coupler 132 can permit the substrate to translate alongX and Y axes of the system (i.e., in a plane parallel to the touchsensor surface 112) when the vibrator 120 is actuated during a clickcycle.

In one implementation, the chassis 130 of the computing device defines areceptacle 134 (e.g., a cavity) configured to receive the system, andthe coupler 132 functions to locate the substrate and the resistivelayer within the receptacle 134. The chassis 130 of the computing devicecan also define an overhang that extends over and into a receptacle 134to form an undercut around the cavity, and the coupler 132 can mount thesubstrate to the underside of the overhang, such as via one or moremechanical fasteners, grommets, or an adhesive.

In one variation, the touch sensor 110 includes a touch sensor surface114 that extends across the back side of the substrate and thatfunctions to support the substrate against deflection out of thevibration plane, such as due to a downward force applied to the touchsensor surface 112. In this variation, the touch sensor surface 114 caninclude a fiberglass plate, a metal (e.g., aluminum) plate, afiber-filled polymer plate, or a plate of any other material and can bebonded to the substrate or fastened to the substrate, such as with amechanical fastener or grommet, and the touch sensor surface 114 can becoupled or fastened to the computing device chassis 130 to mount thesubstrate and resistive layer within the receptacle 134.

Alternatively, the substrate can be of a rigid material and/or of athickness such that the substrate is sufficiently rigid to resistsubstantial deformation out of the vibration plane when a typical loadis applied to the touch sensor surface 112. For example, the substratecan include a 3 mm-thick fiberglass or carbon fiber PCB. The substratecan additionally or alternatively include one or more steel, copper, oraluminum ribs soldered or riveted to the back side of the substrate andspanning the length and/or width of the substrate to improve rigidity ofthe substrate. The substrate can thus be of a material and geometryand/or can include additional strengthening elements to increase therigidity of the substrate in the vibration plane but without addingsubstantial mass to the substrate and resistive layer assembly: in orderto improve the responsiveness of the system due to reduced absorption ofvibration by the rigid substrate; and in order to increase thedisplacement of the substrate and resistive layer assembly per stroke ofthe vibrator 120 during a click cycle.

2.5.1 Grommets

In one implementation, the coupler 132 mounts the substrate (or thetouch sensor surface 114) to the computing device receptacle 134 viaelastic grommets (e.g., “vibration-damping snap-in unthreaded spacers”).In one example shown in FIGS. 13D, 13E, 17A, and 17B, the coupler 132includes one cylindrical grommet—including two necks—inserted into abore at each corner of the substrate with the upper necks of thegrommets engaging their corresponding bores in the substrate. In thisexample, for each grommet, the coupler 132 also includes a rigid tab,such as a metal or fiberglass tab, including a first bore that engagesthe lower neck of the grommet and a second bore laterally offset fromthe first bore and configured to mount to the computing device chassis130 via a fastener, such as a screw, a nut, or a rivet. In this example,the rigid tabs can also be connected, such as to form a rigid frame thatencircles the perimeter of the substrate or in the form of a rigid platethat spans the back side of the substrate. In this example, each grommetincludes an enlarged section between the upper and lower necks thatvertically offsets the substrate above the tabs (or above the rigidframe, above the rigid plate) and that permits the substrate to movelaterally relative to the tabs (or relative to the rigid frame, relativeto the rigid plate) while vertically supporting the substrate. In thisexample, each grommet can be of silicone, rubber, or any other flexibleor elastic material and can be characterized by a durometer sufficientto permit lateral deflection of the grommets due to oscillation of thevibrator 120 during a click cycle but to limit compression of thegrommets under typical loads, such as when one or two human hands arerested on the touch sensor surface 112 and/or when two hands enterkeystrokes (e.g., “type”) across the touch sensor surface 112.

In another example shown in FIG. 13F, the coupler 132 includes onecylindrical grommet—including a single neck—inserted into a bore at eachcorner of the substrate. In this example, the coupler 132 also includesone rigid tab per grommet or a rigid frame or rigid plate that spans thesubstrate. The tabs, frame, or plate are installed behind the substrateto constrain the grommets vertically against the computing devicechassis 130. During a click cycle, the grommets can thus bend or flex toenable the substrate to move within the vibration plane as the vibrator120 is actuated. The computing device chassis 130 and/or the tabs,frame, or plate can also include grommet recesses configured to receiveends of the grommets and to locate the grommets laterally andlongitudinally within the computing device receptacle 134. Each grommetrecess can define a cylindrical recess oversized for the cylindricalgrommets to enable the grommets to move both laterally andlongitudinally, thereby enabling the substrate to move both laterallyand longitudinally within the vibration plane during a click cycle.Similarly, each grommet recess can define an elongated (or “lozenge”)recess that enables the grommets to move only laterally (or onlylongitudinally) within the grommet recesses, thereby enabling thesubstrate to move laterally (or longitudinally) within the vibrationplane during a click cycle.

In this implementation, a grommet can thus define a solid flexible body.Alternatively, a grommet can include a rigid or elastic body and aflexure arranged inside (or outside) of the body. In thisimplementation, the grommet can couple the substrate (or touch sensorsurface 114) to the computing device chassis 130, and the flexure can beconfigured to move relative to the body to enable the substrate to shiftlaterally and/or longitudinally relative to the chassis 130.Alternatively, the system can include one or more fluid-filled and/orribbed grommets that permit greater compression and compliance. Forexample, the grommet can include a set of internal radial ribs thepermit greater deflection in the vibration plane than out of thevibration plane.

Therefore, in this implementation: the vibrator 120 can be coupled tothe touch sensor surface 114 of the touch sensor 110 (e.g., proximal acenter of the touch sensor 110) and can include a linear actuatorconfigured to oscillate the mass along a vector parallel to the touchsensor surface 112 and parallel to an edge of the touch sensor 110; andthe coupler 132 can include a grommet extending from the chassis 130 ofthe mobile computing device and passing through a mounting bore in thetouch sensor surface 114, configured to vertically constrain the touchsensor surface 114 relative to the chassis 130, and exhibitingelasticity in a direction parallel to the touch sensor surface 112.However, in this implementation, the coupler 132 can include any othernumber of grommets in any other configuration. For example, the coupler132 can include: three grommets in a triangular configuration; fourgrommets in a square configuration with one grommet in each corner ofthe substrate or touch sensor surface 114; or six grommets with onegrommet in each corner of the substrate (or in the touch sensor surface114) and one grommet centered along each long side of the substrate (oralong each long side of the touch sensor surface 114). The system canthus define a complete human-computer interface subsystem that can beinstalled in a computing device receptacle 134 with a limited number offasteners or with an adhesive.

2.5.2 Isolators

In another implementation shown in FIG. 13A, the coupler 132 includeselastic isolators bonded to the back side of the substrate (or to theback side of the touch sensor surface 114) and to a surface within thecomputing device receptacle 134. In one example, the coupler 132includes a set of (e.g., four) silicone buttons bonded to the back sideof the touch sensor surface 114 on one side and bonded to the bottom ofthe computing device receptacle 134. In this example, the siliconebuttons can be in compression when a force is applied to the touchsensor surface 112; the silicone buttons can therefore define a geometryand a modulus of elasticity sufficient to substantially resistcompression when a force is applied to the touch sensor surface 112 butto also enable the substrate to translate in the vibration plan during aclick cycle. Alternatively, in this implementation, the coupler 132 caninclude elastic isolators bonded to the top of the substrate (or to thetop of the touch sensor surface 114) and bonded to the underside of thetop of the C-side of the computing device extending into the computingdevice receptacle 134, and the elastic isolators can suspend thesubstrate within the receptacle 134.

2.5.3 Spring Clips

In another implementation shown in FIG. 13C, the coupler 132 includes aset of spring clips that couple the substrate (or the touch sensorsurface 114) to the computing device chassis 130. In one example, thecoupler 132 includes a set of (e.g., four) spring clips in spring steeland that each define a substantially vertical section interposed betweentwo substantially horizontal tabs to form a Z-section or a C-section. Inthis example, the upper tab of each spring tab is fixed (e.g., riveted)to the chassis 130 of the computing device, and the lower tab of eachspring tab is similarly fixed to one corner of the substrate with thebroad faces of all center sections in the set of spring clips inparallel. In this example, the spring clips can be in tension and cansuspend the substrate from the chassis 130 but can lozenge to permit thesubstrate to move along a single axis in the vibration plane.

2.5.4 Foam Wrap

In another implementation shown in FIG. 13G, the coupler 132 includes: afirst foam section wrapped from the top of the substrate to the bottomof the substrate along one edge of the substrate; a second foam sectionwrapped from the top of the substrate to the bottom of the substratealong the opposing edge of the substrate; and a set of clamps thatfasten to the computing device chassis 130 and constrain the foamsections against the chassis 130. For example, each foam section caninclude a closed-cell silicone foam and can be adhered to the substrate(or the silicone backing) on both the top and bottom sides of thesubstrate. Alternatively, the substrate can be detached from (e.g., notadhered) to the foam sections and can thus translate relative to thefoam sections during a click cycle. Each clamp can include a clipconfigured to fasten to the computing device chassis 130, such as with arivet, screw, or other mechanical fastener, and to compress an adjacentfoam section—wrapped around an edge of the substrate—against thecomputing device chassis 130. Furthermore, in this implementation, thecomputing device receptacle 134 can be oversized in length and/or widthsuch that the substrate is not over-constrained by the receptacle 134and such that the substrate can move within the vibration plane during aclick cycle.

2.5.5 Bearings

In yet another implementation shown in FIG. 13B, the coupler 132 mountsthe substrate (or the touch sensor surface 114) to the computing devicechassis 130 via a set of bearings. In one example, the computing devicereceptacle 134 can include multiple bearing receivers, the substrate caninclude one bearing surface vertically aligned with each bearingreceiver and arranged across the back side of the substrate opposite thetouch sensor surface 112, and the coupler 132 can include one ballbearing arranged in each bearing receiver and configured to verticallysupport the substrate at corresponding bearing surfaces on the back sideof the substrate.

In another example, the computing device receptacle 134 defines 24bearing receivers arranged in a 3×8 grid array spaced along the backside of the substrate, and the coupler 132 includes one ball bearingarranged in each bearing receiver. In this example, the bearings cansupport the substrate (or the touch sensor surface 114) with a limitedmaximum span between adjacent bearings in order to limit localdeflection of the substrate when a load (of a typical magnitude) isapplied to the touch sensor surface 112. The coupler 132 can thusinclude multiple bearings that function as a thrust bearing tovertically support the substrate. However, in this implementation, thecomputing device can include any other number of bearings arranged inany other way.

In this implementation, each bearing receiver can define a hemisphericalcup that constrains a ball bearing in translation, and the substrate caninclude steel or polymer planar bearing surfaces soldered, adhered, orotherwise mounted to the back side of the substrate (or the back side ofthe touch sensor surface 114) and configured to mate with an adjacentball bearing at a point of contact, as shown in FIG. 13H. Alternatively,each bearing surface mounted to the substrate (or on the touch sensorsurface 114) can define a linear track (e.g., a V-groove), wherein alllinear tracks in the set of bearing surfaces are parallel such that thesubstrate can translate in a single direction parallel to the lineartracks and in the vibration plane during a click cycle (or vice versa),as shown in FIG. 13B. The bearing receivers and bearing surfaces canalso define similar and parallel linear tracks that constrain thesubstrate to translate along a single axis, or the bearing receivers andbearing surfaces can define similar but perpendicular linear tracks thatenable the substrate to translate along two axes in the vibration plate.Furthermore, each bearing receiver can be packed with a wet or drylubricant (e.g., graphite).

In this implementation, the coupler 132 can alternatively include one ormore linear bearing or linear slides that similarly constrain thesubstrate to linear translation along only one or two axes.

Furthermore, the coupler 132 can incorporate one or more bearings withany of the foregoing implementations to provide additional support tothe substrate (or to the touch sensor surface 114). For example, if thesubstrate is arranged in a receptacle 134 spanning a large width and/orlarge length relative to the thickness and rigidity (e.g., modulus ofelasticity) of the substrate (or of the touch sensor surface 114): thecomputing device receptacle 134 can include one or more bearingreceivers; the substrate can include one bearing surface aligned witheach bearing receiver in the computing device receptacle 134 on the backside of the substrate opposite the resistive layer; and the coupler 132can include four spring clips suspending each of the four corners of thesubstrate from the chassis 130 and one ball bearing arranged in eachbearing receiver and configured to vertically support the substrate atcorresponding bearing surfaces on the back side of the substrate.

2.5.6 Flexure

In another implementation shown in FIG. 13H, the coupler 132 defines aflexure coupled to or integrated into the substrate (or the touch sensorsurface 114). For example, sections along the perimeter of the substratecan be removed, such as by routing, to form a set of serpentine orboustrophedic beams extending from a center section of the substrate. Inthis example, the distal end of each beam can be fastened to thecomputing device chassis 130, such as with a rivet or with a threadedfastener, to couple the substrate to the chassis 130 but to enable thesubstrate to translate laterally and/or longitudinally in the vibrationplane relative to the computing device. In this example, the coupler 132can also include one or more bearings, as described above, to verticallysupport the center section of the substrate against inward deflectionupon application of a force to the touch sensor surface 112.

2.6 Vibrator Variation

In one variation shown in FIG. 16 the vibrator 120 includes a magneticcoil mounted to the substrate (or to the touch sensor surface 114) and amagnetic (or otherwise ferrous) element coupled to the chassis 130 ofthe computing device (or vice versa). For example, the magnetic elementcan be potted into a recess in the computing device chassis 130 in orderto reduce the total height of the system and computer system.Alternatively, the vibrator 120 can include: a magnetic coil arrangedwithin a recess in the computing device chassis 130; and a magneticelement fastened (e.g., riveted, bonded, soldered) to the substrate.During a click cycle, the controller 150 drives the magnetic coil withan alternating current, which causes the magnetic coil to output anoscillating magnetic field that magnetically couples to the magneticelement, such as similar to a voice-coil, thereby oscillating thesubstrate in the vibration plane and relative to the chassis 130 inBlock S120. In this variation, the substrate (or touch sensor surface114) and be suspended from the chassis 130 as described above.

Alternatively, the system can include a piezoelectric actuator, asolenoid, an electrostatic motor, a voice coil, a speaker, or anactuator of any other type arranged between the substrate (or touchsensor surface 114) and the computing device chassis 130 and configuredto oscillate the substrate laterally (or longitudinally) in thevibration plane, as shown in FIG. 17A.

2.7 Touch Sensor Surface Junction

In one implementation, the resistive layer extends past the perimeter ofthe substrate to meet an outer surface of the computing device chassis130. For example, the resistive layer can extend from a perimeter of thesubstrate, past a junction between the substrate and the computingdevice receptacle 134, to a perimeter of the top surface of thecomputing device chassis 130 in order to form a continuous surfaceacross the C-side of the computing device. In this implementation, theresistive layer can also define a thin region or “neck” where theresistive layer spans a junction between the substrate and the computingdevice receptacle 134 in order to dampen oscillation of the substrateduring a click cycle and/or to limit mechanical resistance totranslation of the substrate within the vibration plane during a clickcycle.

In another implementation, the resistive layer extends up to but not(substantially) beyond the perimeter of the substrate. In thisimplementation, the system can further include a soft seal (e.g., amolded silicone ring) arranged between the outer edge of substrate andthe interior wall of the computing device receptacle 134 to preventingress of dirt, moisture and/or other debris between the system and thecomputing device receptacle 134. Alternatively, a seal can be integratedinto the resistive layer, such as in the form of a ridge or bellowssection molded into the perimeter of the resistive layer; the resistivelayer can thus extend beyond a perimeter of the substrate but a shortdistance sufficient to bridge and to seal the junction between thesubstrate and the computing device receptacle 134.

However, the system can include any other elements or features to closeor seal the junction between the substrate and the computing devicereceptacle 134.

2.8 Trackpad+Keyboard

In one variation in which the computing device defines a laptopcomputer, the computing device includes a receptacle 134 spanningsubstantially the full width and length of its C-side, the system candefine both a trackpad region and a keyboard region, as shown in FIGS.12, 15A, 15B, 15C, 15D, and 15F. In this variation, the controller 150can implement the foregoing methods and techniques to respond to inputson the trackpad region by triggering a click cycle and outputting aclick command, a cursor vector, or a scroll command, etc. In thisvariation, the controller 150 can also designate discrete key regions ofa keyboard (e.g., 26 alphabetical key regions, 10 numeric key regions,and various punctuation and control keys) and can trigger a click cycleand output a keystroke command in response to a detected input on acorresponding discrete key region of the keyboard.

In one implementation, the touch sensor surface 112 defines a continuoussurface across the keyboard and trackpad regions, and the systemincludes key designators (e.g., alphanumeric characters, punctuationcharacters) printed onto or otherwise applied to discrete key regionsacross the keyboard region of the touch sensor surface 112, such as awhite ink screen-printed across the touch sensor surface 112. In thisimplementation, the system can also include borders for the discrete keyregions and/or for the trackpad region designated in such ink. Thesystem can additionally or alternatively include key designators and/orregion designators embossed or debossed across the touch sensor surface112 to enable a user to tactilely discriminate between various regionsacross the touch sensor surface 112. Yet alternatively, the system caninclude a keyboard overlay 164—including visually- ormechanically-distinguished discrete key regions—installed over thekeyboard region of the touch sensor surface 112 to define commands orinputs linked to various discrete input regions within the keyboardregion. In this implementation, the keyboard overlay 164 can betransiently installed on (i.e., removable from) the keyboard region ofthe touch sensor surface 112, such as to enable a user to exchange afirst keyboard overlay 164 defining a QWERTY keyboard layout with asecond keyboard overlay 164 defining an AZERTY keyboard layout. In thisimplementation, depression of a discrete key region of an overlay 164placed over the keyboard region of the touch sensor surface 112 canlocally compress the resistive layer, which can modify the bulkresistance and/or the contact resistance of the resistive layer on thedrive and sense electrodes; and the controller 150 can register suchchange in bulk resistance and/or contact resistance of the resistivelayer as an input, associate a particular keystroke with this inputbased on the location of the input, output the keystroke to a processingunit within the computing device, and trigger a click cycle.

In this variation, the trackpad region can be interposed between thekeyboard region and a near edge of the C-side of the computing deviceand may run along a substantial portion of the width of the keyboardregion such that a user may rest her palms on the trackpad when typingon the keyboard. During operation, the controller 150 can characterizean input on the trackpad as a palm and reject such an input in favor ofinputs on the keyboard region in order to record keystrokes rather thancursor movements when a user is typing on the keyboard region. Forexample, the controller 150 can implement pattern matching or templatematching techniques to match one or more input areas detected on thetrackpad region of the touch sensor surface 112 with one or two palms,and the controller 150 can reject these inputs. In this example, thecontroller 150 can confirm identification of an input area ascorresponding to a resting palm (e.g., confirm a match between an inputarea and a labeled palm template) in response to detection of one or asequence of inputs (e.g., “keystrokes”) on the keyboard region of thetouch sensor surface 112; and vice versa. The system can also captureinput areas on the trackpad region, store these input areas as newtemplate images, label these new template images as indicative of aresting palm or not indicative of a resting palm based on detection of akeystroke on the keyboard area following within a threshold time (e.g.,three seconds) of detection of an input area on the trackpad region.However, the controller 150 can implement any other palm rejectionmethods or techniques and can implement any other method or technique toautomatically train a palm rejection model.

Furthermore, the system can transform an input detected within thetrackpad region of the touch surface as one of various commands, such asbased on the initial location, final location, speed, force (orpressure) magnitude, etc. of the input on the touch surface. Forexample, the controller 150 can interpret an input on the touch surfaceas one of a click, deep click scroll, zoom, and cursor motion commandsbased on methods and techniques described above. In this example, thecontroller 150 can interpret a first force applied to the trackpadregion—up to a first depression threshold magnitude defining a clickinput within the trackpad region—followed by release of the first forcefrom the trackpad region (i.e., to less than a first release thresholdmagnitude less than the first depression threshold magnitude) as aselection (or “left click”) input. The controller 150 can then output aselection (or “left click”) command and execute a “down” click cycle andthen an “up” click cycle accordingly, such as through a first vibrator120 under the trackpad region of the touch sensor surface 112.

Similarly, the controller 150 can interpret a second force applied tothe trackpad region—up to a second depression threshold magnitudedefining a “deep” click (or “right click”) input within the trackpadregion—followed by release of the second force from the trackpad region(i.e., to less than the first release threshold magnitude) as a “deepclick” input. The controller 150 can then output a “deep click” (or“right click”) command and execute a “deep down” click cycle and then an“up” click cycle accordingly through the first vibrator 120.

Furthermore, the controller 150 can interpret a third force applied tothe keyboard region—up to a third depression threshold magnitudedefining a click input within the keyboard region (e.g., less than thefirst depression threshold magnitude)—as a keystroke for a characterassigned to the location of the third force on the touch sensor surface112; the controller 150 can then output this keystroke and execute asingle “down” click cycle through a second vibrator 122 under thekeyboard region of the touch sensor surface 112. The controller 150 canrepeatedly output the keystroke until release of the third force fromthe keyboard region (i.e., to less than a second release thresholdmagnitude less than the second depression threshold magnitude) isdetected and then execute an “up” click cycle accordingly.

The controller 150 can also interpret two distinct touch inputs movingtoward one another or moving away from one another on the touch sensorsurface 112 as a zoom-out input or as a zoom-in input, respectively.Furthermore, the controller 150 can generate a cursor vector based on aspeed and direction of an input moving across the touch sensor surface112 and output these cursor vectors to a processing unit or othercontroller 150 within the computing device substantially in real-time.

However, the controller 150 can detect any other inputs of any otherform or type on the touch sensor surface 112 and respond to these inputsin any other way.

2.9 Multiple Vibrators

In the foregoing implementation, the system can include multiplespeakers and multiple vibrators and can selectively trigger click cyclesat the speakers and vibrators in response to inputs on both the trackpadregion and the keyboard region. In one example in which the controller150 triggers a motor driver to drive a vibrator 120 for a target clickduration of 250 milliseconds during a click cycle, the system caninclude three vibrators—coupled to the substrate opposite the touchsensor surface 112—in order to support a human keystroke speed up to 480keystrokes per minute (i.e., 8 Hz keystroke input rate). In thisexample, the vibrator 120 can be arranged in a tight cluster on the backside of the substrate, such as proximal the center of the substrate, andthe controller 150 can default to triggering a primary vibrator 120 toexecute a click cycle in response to a next input on the keyboardregion. However, if the primary controller 150 is still completing aclick cycle when a next input on the touch sensor surface 112 isdetected or if the primary vibrator 120 has completed a click cycle inless than a threshold pause time (e.g., milliseconds) upon receipt ofthe next input, the controller 150 can trigger a secondary vibrator 120to execute a click cycle in response to this next input. In thisexample, the controller 150 can implement similar methods to trigger atertiary vibrator 120 to execute a click cycle in response to a nextinput if the primary and secondary vibrators are still completing clickcycles upon receipt of the next input. Alternatively, the controller 150can sequentially actuate a first vibrator 120, a second vibrator 122,and a third vibrator 120 as inputs are detected on the touch sensorsurface 112. Yet alternatively, in this implementation, the vibratorscan be distributed across the back surface of the substrate, such as onevibrator 120 in each of three equi-width column regions on the back sideof the substrate, and the controller 150 can selectively trigger avibrator 120—nearest a detected input on the touch sensor surface 112and currently static and outside of pause time—to execute a click cyclein response to detection of the input.

The controller 150 can implement similar methods and techniques totrigger one or more speakers within the system or within the computingdevice to execute a click cycle in response to an input detected on thetouch sensor surface 112. For example, the system can include one ormore discrete speakers coupled to (e.g., mounted on) the substrate.Alternatively, the controller 150 can trigger one or more speakers(e.g., one or more audio monitors) integrated into the computing deviceor another speaker or audio drive remote from the substrate to execute aclick cycle in response to a detected input on the touch sensor surface112.

In another implementation, the system includes: a first vibrator 120arranged under a first region of the touch sensor surface 112; and asecond vibrator 122 arranged under a second region of the touch sensorsurface 112 adjacent and distinct from the first region of the touchsensor surface 112. In this implementation, the controller 150 can:selectively actuate the first vibrator 120 in response to detection of afirst force on the touch sensor surface 112 exceeding a first thresholdmagnitude assigned to the first region; and selectively actuate thesecond vibrator 122 in response to detection of a second force on thetouch sensor surface 112 exceeding a second threshold magnitude assignedto the second region; wherein the first and second thresholds areidentical or unique, such as set manually by a user or set automaticallyby the controller 150 based on unique commands assigned to the first andsecond regions. In this implementation, the controller 150 can alsotrigger a single speaker to output a click sound response to such inputon both the first and second regions. Alternatively, the system caninclude a first speaker adjacent the first region of the touch sensorsurface 112 and a second speaker adjacent the second region of the touchsensor surface 112; and the controller 150 can selectively trigger thefirst and second speakers to replay the click sound when such inputs aredetected on the left and right regions of the touch sensor surface 112,respectively. In this implementation, the controller 150 can alsoimplement hysteresis methods described above to selectively actuate theleft and right vibrators during “up” click cycles when detected forcesapplied to the left and right regions of the touch sensor surface 112drop below common or unique retraction thresholds assigned to theseregions.

However, the controller 150 can implement any other method or techniqueto detect and to respond to inputs on the trackpad and keyboard regions.Furthermore, the system can implement methods and techniques describedabove to vibrate the substrate in a direction substantially normal tothe touch sensor surface 112 (i.e., out of the vibration plane describedabove.)

2.10 Additional Sensing

In one variation, the system includes a capacitive sensor, opticalsensor, magnetic displacement sensor, strain gauge, FSR, or any othersensor coupled to the chassis 130 and/or to the substrate and configuredto detect displacement of the substrate in the vibration (e.g., X-Y)plane responsive to a force applied to the touch sensor surface 112. Thecontroller 150 can then output a command based on such in-planedisplacement or force applied to the touch sensor surface 112.

Similarly, the system can include a capacitive sensor, optical sensor,magnetic displacement sensor, strain gauge, FSR, or any other sensorcoupled to the chassis 130 and/or to the substrate and configured todetect absolute displacement of the substrate out of the vibration plane(i.e., along a Z-axis), as shown in FIG. 13B. In this variation, thecontroller 150 can transform a determined absolutely displacement of thesubstrate into an absolute magnitude of a force applied to the touchsensor surface 112 based on a known spring constant of the coupler 132.The controller 150 can then compare this absolute force magnitude torelative force magnitudes of objects in contact with the touch sensorsurface 112 in order to calculate the absolute force magnitude of eachobject in contact with the touch sensor surface 112 at any one time. Thecontroller 150 can then output a command for one or more touch inputs onthe touch sensor surface 112 accordingly.

However, the system can be incorporated into any other type of computingdevice in any other way.

3. Direct Vibration

As shown in FIGS. 18A and 18B, one variation of the system 100 includes:a chassis 130, a touch sensor 110, a vibrator, a coupler 132, and acontroller 150. The touch sensor 110 includes a rigid backing and anarray of sense electrode and drive electrode pairs 116 arranged over therigid backing. Furthermore, the touch sensor 110 defines a touch sensorsurface 112 extending over the array of sense electrode and driveelectrode pairs 116. The vibrator includes: a first magnet mounted tothe chassis 130 and defining a first polarity; a second magnet mountedto the chassis 130 adjacent and laterally offset from the first magnetand defining a second polarity distinct from the first polarity; a coilcoupled to the touch sensor 110 opposite the touch sensor surface 112,facing the first magnet and the second magnet, and configured to outputan oscillating magnetic field that selectively magnetically couples tothe first magnet and the second magnet in order to oscillate the touchsensor 110 within a plane parallel to the touch sensor surface 112. Asdescribed above, the system 100 can also include a controller 150configured to: detect application of a first input onto the touch sensorsurface 112 and a first force magnitude of the first input at a firsttime based on a first change in resistance between a first senseelectrode and drive electrode pair 116 in the touch sensor 110; executea first click cycle in response to the first force magnitude exceeding afirst threshold magnitude by driving an alternating current through thecoil to induce an oscillating magnetic field that intermittentlyattracts and repels the first magnet and repels and attracts the secondmagnet; and output a first touch image representing a first location andthe first force magnitude of the first input on the touch sensor surface112 at approximately the first time.

In this variation, the system 100 can similarly include: a magneticelement 126 rigidly coupled to a chassis 130; a substrate 114; a touchsensor 110 interposed between the substrate 114 and a touch sensorsurface 112; an inductor 124 coupled to the substrate 114 below thetouch sensor surface 112 and configured to magnetically couple to themagnetic element 126; a coupler 132 coupling the substrate 114 to thechassis 130, compliant (e.g., flexible, elastic, deformable) within avibration plane approximately parallel to the touch sensor surface 112,and locating the inductor 124 approximately over the magnetic element126; and a controller 150 configured to intermittently polarize theinductor 124 responsive to detection of a touch input on the touchsensor surface 112 to oscillate the substrate 114 in the vibration planerelative to the chassis 130.

Similarly and as shown in FIG. 26, the system 100 can include: amagnetic element 126 rigidly coupled to a chassis 130; a substrate 114;a touch sensor 110 interposed between the substrate 114 and a touchsensor surface 112; an inductor 124 coupled to the substrate 114 belowthe touch sensor surface 112 and configured to magnetically couple tothe magnetic element 126; a coupler 132 coupling the substrate 114 tothe chassis 130, compliant within a vibration plane approximatelyparallel to the touch sensor surface 112, and locating the inductor 124approximately over the magnetic element 126; a driver 152 coupled toinductor 124; and a control program 154 configured to trigger the driver152 to intermittently polarize the inductor 124 responsive to detectionof a touch input on the touch sensor surface 112 to oscillate thesubstrate 114 in the vibration plane relative to the chassis 130.

Alternatively, in this variation, the system 100 can include: aninductor 124 rigidly coupled to a chassis 130; a substrate 114; a touchsensor 110 interposed between the substrate 114 and a touch sensorsurface 112; a magnetic element 126 coupled to the substrate 114 belowthe touch sensor surface 112 and configured to magnetically couple tothe inductor 124; a coupler 132 coupling the substrate 114 to thechassis 130, compliant within a vibration plane approximately parallelto the touch sensor surface 112, and locating the inductor 124approximately over the magnetic element 126; and a controller 150configured to intermittently polarize the inductor 124 responsive todetection of a touch input on the touch sensor surface 112 to oscillatethe substrate 114 in the vibration plane relative to the chassis 130.

3.1 Applications

In this variation, the system 100: includes a magnetic element 126arranged in a chassis 130 and an inductor 124 (e.g., multi-loop coil ofcopper wire that forms an air inductor 124) coupled to the touch sensor110 adjacent the magnetic element 126; and directly vibrates the touchsensor 110 within the chassis 130—such as responsive to an input on thetouch sensor surface 112—in a vibration plane parallel to the touchsensor surface 112 by driving a current through the inductive, whichinduces a magnetic field through the inductor 124, yields a change inforce between the magnetic element 126 and the inductor 124 parallel tothe vibration plane, and moves the touch sensor 110 within the chassis130. In particular, the magnetic element 126 (arranged in the chassis130) and the inductor 124 (coupled to the touch sensor 110) cancooperate to define (or function as) a “vibrator” that moves the touchsensor 110 relative to the chassis 130 when current is supplied to theinductor 124, such as responsive to a finger, stylus, or other touchinput on the touch sensor surface 112 in order to provide real-timehaptic feedback to a user.

Because the inductor 124 is coupled directly to the touch sensor 110(e.g., via the substrate 114 that supports the touch sensor 110 andtouch sensor surface 112) and because the magnetic element 126 iscoupled directly to the chassis 130 near the inductor 124, the inductor124 and the magnetic element 126 can cooperate to move the touch sensor110 within the chassis 130 directly rather than oscillate a separatemass that then oscillates the touch sensor 110 due to conservation ofmomentum. Therefore, the inductor 124 and the magnetic element 126 cancooperate to reduce mass of the system 100, enable a shorter overallheight of the system 100 by reducing complexity and additional packagingfor a rotating mass, oscillate the touch sensor 110 more directly,achieve peak displacement and/or velocity motion of the touch sensor 110in less time, and thus achieve a more authentic “click” feel for a user.

For example, the controller 150 can trigger the vibrator 120 to output avibratory signal that mimics the feel of actuation of a mechanical snapbutton in Block S120. As shown in FIG. 24, the system 100 can oscillatethe touch sensor 110 within the chassis 130 by driving an alternatingcurrent through the inductor 124, which then magnetically couples to themagnetic element 126 to move the touch sensor 110 within the vibrationplane. More specifically, when polarized by the controller 150 (or thedriver 152), the inductor 124 can output a magnetic field thatintermittently changes direction (or polarity) and thus intermittentlyattracts and repels poles of a magnetic element 126 coupled to thechassis 130 in a vibration plane parallel to the touch sensor surface112 and along an axis of vibration parallel the touch sensor surface 112as shown in FIG. 19

The magnetic element 126 can be rigidly located within the chassis 130.For example, the magnetic element 126 can include an array of magnets,each arranged with its polarity different from adjacent magnets. In thisexample, the magnetic element 126 can include: a first magnet thatoutputs a first magnetic field in a first direction and that attractsthe inductor 124 when the inductor 124 is polarized in a first directionand vice versa; and a second magnet that outputs a second magnetic fieldin a second direct and that repels the inductor 124 when the inductor124 is polarized in a second direction and vice versa. Therefore, whenthe controller 150 polarizes the inductor 124 in a first direction atthe start of a click cycle responsive to an input detected by the touchsensor 110, the magnetic field generated by the inductor 124 can attractthe first magnet and repel the second magnet, thereby shifting the touchsensor 110 toward to the first magnet. When the controller 150 thenpolarizes the inductor 124 in a second, opposing direction during thissame click cycle, the opposing magnetic field generated by the inductor124 can attract the second magnet and repel the first magnet, therebyshifting the touch sensor 110 back toward to the second magnet and thusoscillating the touch sensor 110 within the chassis 130.

The controller 150 (or the driver 152 and the control program 154) canalso oscillate polarity of the inductor 124—during a click cycle—atarget vibration frequency (e.g., between Hz and 200 Hz) tuned such thata human finger perceives oscillation of the touch sensor 110 as amechanical “click.” Furthermore, the inductor 124, the touch sensor 110,the substrate 114, and the touch sensor surface 112, etc. (hereinafterthe “touch sensor assembly”) may exhibit a resonant frequency;therefore, to produce rapid onset of motion of the touch sensor assemblyand then rapid dissipation of energy from the touch sensorassembly—which may yield a distinct “click” sensation for a usertouching the touch sensor surface 112—that controller 150 can polarizethe inductor 124 at a frequency distinct from the resonant frequency ofthe touch sensor assembly.

3.2 Chassis

As described above, the system 100 can be installed in or integratedinto a chassis 130 of a computing device, such as a laptop computer, toform a trackpad or combined trackpad-keyboard surface. Similarly, thesystem 100 can be installed in or integrated into a chassis 130 of aperipheral device, such as a peripheral trackpad. Furthermore, thesystem 100 can be installed in or integrated into a chassis 130 of amobile computing device. For example: a display can be arranged over thetouch sensor assembly; the inductor 124 can be coupled to the touchsensor assembly opposite the display; the touch sensor assembly and thedisplay can be arranged over and coupled to a rear housing (the “chassis130”) of a smartphone via the coupler 132; the magnetic element 126 canbe rigidly coupled to the rear housing; and the inductor 124 and themagnetic element 126 can cooperate to oscillate the display and touchsensor 110 relative to the rear housing in order to provide hapticfeedback for a user interfacing with the smartphone.

Therefore, the chassis 130 can define a substantially rigid mass, andthe touch sensor assembly can be arranged over the chassis 130, arrangedin a cavity 134 (e.g., a trackpad cavity 134) defined by the chassis130, or coupled to the chassis 130 in any other way.

3.3 Touch Sensor

As described above, the touch sensor 110 can include: an array of senseelectrode and drive electrode pairs 116 arranged over the substrate 114;and a pressure-sensitive layer arranged over the array of senseelectrode and drive electrode pairs 116 and defining the touch sensorsurface 112. In this implementation, the controller 150 can thus: detectapplication of an input at a first location on the touch sensor surface112 based on a change in resistance between a first sense electrode anddrive electrode pair 116—in the array of sense electrode and driveelectrode pairs 116—below the first location on the touch sensor surface112; and interpret a force magnitude of the first input based on amagnitude of the first change in resistance between a first senseelectrode and drive electrode pair 116.

Alternatively, the touch sensor 110 can include an array of senseelectrode and drive electrode pairs 116 arranged over the substrate 114and a tactile layer arranged over the array of sense electrode and driveelectrode pairs 116 and defining the touch sensor surface 112; and thecontroller 150 can implement mutual capacitance techniques to readcapacitance values between these sense electrode and drive electrodepairs 116 and to interpret inputs on the touch sensor surface 112 basedon these capacitance values.

However, the touch sensor 110 can include a resistive, capacitive,optical, or other type of touch sensor 10 defining a two-dimensionalsensible area under a touch sensor surface 112.

3.4 Substrate

The touch sensor 110 is arranged over (or is physically coextensivewith) the substrate 114. The substrate 114 can thus function to supportthe touch sensor 110 and/or to form an interface between the touchsensor 110 and the chassis 130.

In one implementation described below in which the touch sensor assemblyis suspended on the chassis 130, the substrate 114 includes a rigidbacking, such as an aluminum, steel, or fiber-composite plate. In thisimplementation, the touch sensor 110 is bonded over an outer face of thesubstrate 114 and the inductor 124 is bonded or otherwise assembled onan interior face of the substrate 114 such that the inductor 124 islocated immediately over the magnetic element 126 arranged in thechassis 130.

In a similar implementation, the substrate 114 includes a rigid (e.g.,fiberglass) circuit board, and sense electrode and drive electrode pairs116 of the touch sensor 110 are fabricated directly on the outermostlayer (or on the outermost layers) of the substrate 114. In thisimplementation, the inductor 124 can be contained in a surface-mountpackage and can soldered to directly surface-mount pads on the inner(i.e., chassis 130-side) face of the substrate 114. Alternately, theinductor 124 can include: a single-layer planar spiral coil fabricateddirectly on the innermost layer of the substrate 114; or a multi-layerplanar spiral coil fabricated directly on a set of innermost layers ofthe substrate 114.!

In the foregoing implementations, the substrate 114 can further includea set of ribs or flanges configured to resist deflection (e.g., bending)of the substrate 114 when the touch sensor surface 112 is depressedtoward the substrate 114, such as by a finger or stylus. For example,the substrate 114 that includes an aluminum or steel plate can be formedto include a flange along one or multiple edges of the touch sensor 110and formed to include a bead inset from the perimeter of the touchsensor 110. In another implementation in which the substrate 114includes a rigid circuit board, the substrate 114 can further include ametal (e.g., steel) rib soldered directly onto surface-mount padsdefined on the inner face of the substrate 114.

Alternatively, the substrate 114 can include a flexible circuit board,and sense electrode and drive electrode pairs 116 of the touch sensor110 can be fabricated on one or more layers of the flexible circuitboard. In this implementation and as described below, the chassis 130can define a planar support surface (such as including a low-frictioncoating); the substrate 114 can thus rest over and slide on the planarsupport surface, and the planar support surface can vertically supportthe substrate 114 and the touch sensor 110 against inward deformationwhen a force is applied to the touch sensor surface 112 (e.g., by afinger or stylus).

However, the substrate 114 can define any other form and include anyother material or feature to support the touch sensor 110 and theinductor 124.

3.5 Inductor

Therefore, the inductor 124 is coupled to the substrate 114 below thetouch sensor surface 112, such as opposite the touch sensor 110. In oneimplementation shown in FIG. 19, a center of the inductor 124 can alsobe offset from a center of mass of the touch sensor 110 such that thetouch sensor assembly forms an eccentric mass that vibrates around themagnetic element 126 below when the inductor 124 is polarized.

In one implementation, the inductor 124 includes a multi-loop conductive(e.g., copper) wire coil that defines an air inductor 124 and defines asymmetric axis perpendicular to the touch sensor surface 112. Forexample, the coil can form a circular torus and can be bonded to theinner face of the substrate 114 (e.g., with an adhesive, with a pottingmaterial) opposite the touch sensor 110 with the symmetric axis of thecoil approximately centered over the magnetic element 126 below when thecoil is undriven. In another example, the magnetic element 126 includesan elongated array of permanent magnets, such as arranged in the form ofan elongated, linear Halbach array. In this example, the inductor 124can include a coil in the form of a torus elongated along a long axis ofthe magnetic element 126 and in a plane parallel to the vibration plane;and the inductor 124 can be bonded, solder, or otherwise coupled to thesubstrate 114 over the magnetic element 126 with the long and short axesof the inductor 124 approximately aligned with the long and short axesof the magnetic element 126 when the inductor 124 is not undriven.

In another example, the substrate 114 includes a circuit board anddefines a set of surface mounted pads across its inner face. In thisexample, the inductor 124 is contained in a surface mount packagesoldered to these surface mounted pads on the substrate 114.Alternatively, ends of the coil—that form the inductor 124—can besoldered to these surface mounted pads on the substrate 114. The coilcan also be embedded or encapsulated in epoxy or potting material.

In another implementation, the inductor 124 includes a voice coil,including a former, a collar, and a winding of conductive wire (e.g.,coiled aluminum or copper wire). In this implementation, the inductor124 can be soldered to the substrate 114 and can extend below the innerface of the substrate 114 (e.g., by one millimeter).

Alternatively, the inductor 124 can be fabricated (e.g., according toPCB processing technologies) directly onto the substrate 114 oppositethe touch sensor surface 112. For example and as shown in FIGS. 22A and22B, a first segment of the inductor 124 (e.g., a first spiral coil) isfabricated on or otherwise coupled to a first layer (e.g., a thinfiberglass) of the substrate 114; a second segment of the inductor 124is fabricated on or otherwise coupled to a second layer of the substrate114 arranged over the first layer; a third segment of the inductor 124is fabricated on or otherwise coupled to a third layer of the substrate114 arranged over the second layer; etc. and these segments of theinductor 124 are coupled with via passing through these layers of thesubstrate 114, as shown in FIG. 22B.

However, the inductor 124 can be of any other form and can be coupled toor fabricated on the substrate 114 in any other way.

3.6 Magnetic Element

Generally, the magnetic element 126 is rigidly coupled to a chassis 130and functions to magnetically couple to (attract and/or repel) theinductor 124 when the inductor 124 is polarized by the controller 150(e.g., via the driver 152) responsive to an input on the touch sensorsurface 112.

In one implementation shown in FIG. 21, the magnetic element 126includes: a first magnet (e.g., a magnetic dipole permanent magnet)mounted to the chassis 130 and arranged with a first polarity (e.g., anorth pole) facing the inductor 124; a second magnet mounted to thechassis 130 adjacent and laterally offset from the first magnet andarranged with a second polarity (e.g., a south pole) facing the inductor124. In this implementation, the first magnet and the second magnet canbe bonded, fastened, adhered, or otherwise rigidly coupled to thechassis 130 adjacent each other such that the inductor 124 attracts oneof these magnets and repels the other magnet—thereby moving the touchsensor assembly in the vibration plane—when the inductor 124 ispolarized within current flowing in a first direction; and vive versa.In this implementation, the first magnet and the second magnet can bearranged in the chassis 130 along a primary axis that intersects acenter of mass of the touch sensor 110; the inductor 124 can besimilarly arranged on the substrate 114 parallel to the primary axis andwith a long axis of the inductor 124 arranged over the first and secondmagnets.

In another implementation shown in FIG. 23, the magnetic element 126includes a Halbach array: coupled to the chassis 130 adjacent (e.g.,extending along) the inductor 124; and containing a set of magnets in anarrangement configured to augment magnetic fields output by thesemagnets thus increase magnetic coupling between the magnetic element 126and the inductor 124 when the inductor 124 is polarized.

In this implementation, the magnetic element 126 can include fivemagnets arranged in a row extending parallel to the vibration plane.Each magnet in this set can exhibit a polarity distinct from itsadjacent magnets. For example: the first magnet in the magnetic element126 can be arranged with its north pole facing the left side of thechassis 130; a second magnet in the magnetic element 126 can be arrangedwith its north pole facing the top edge of the chassis 130; a thirdmagnet in the magnetic element 126 can be arranged with its north polefacing the right side of the chassis 130; a fourth magnet in themagnetic element 126 can be arranged with its north pole facing a bottomedge of the chassis 130; and a fifth magnet in the magnetic element 126can be arranged with its north pole again facing the left side of thechassis 130. In this example, magnetic fields output by the second andfourth magnets and focus the magnetic fields output by the first, third,and fifth magnetic element 126 s and thus improve magnetic couplingbetween the magnetic element 126 and the inductor 124 when the inductor124 is polarized.

However, the magnetic element 126 can include any other type of magnetarranged in any other way.

3.6.1 Magnetic Shield

In one variation shown in FIG. 24, the system 100 further includes amagnetic shield 138 interposed between the magnetic element 126 and thechassis 130 and configured to damp magnetic fields output by themagnetic element 126 and the inductor 124. For example, the system 100can include a thin conductive plate (e.g., a stainless steel shim)arranged directly under the magnetic element 126 or arranged under afloor of a cavity 134—defined by the chassis 130—housing the magneticelement 126 and the touch sensor assembly. The magnetic shield 138 canthus function to damp a magnetic field extending into the chassis 130and thus shield electronic arranged in the chassis 130 below fromchanging magnetic fields around the touch sensor 110 thus resulting frompolarization of the inductor 124.

3.7 Driver

In one variation shown in FIG. 26, the system 100 further includes adriver 152 configured to intermittently source current to the inductor124 responsive to a trigger from the controller 150. In oneimplementation, the driver 152 includes a dual-H bridge electricallycoupled to each end of the inductor 124 and configured to selectivelycouple the inductor 124 to a power supply: to apply a positive voltagepotential across the inductor 124 to cause current to flow in a firstdirection through the inductor 124 and thus polarize the inductor 124 ina first orientation; and to apply a negative voltage potential acrossthe inductor 124 to cause current to flow in a second direction throughthe inductor 124 and thus polarize the inductor 124 in a secondorientation based on a control signal or command from the controller150. Therefore, in this implementation, the controller 150 can triggerthe driver 152 to polarize the inductor 124 in a first direction for afirst duration of time and to polarize the inductor 124 in a seconddirection opposite the first direction for a second duration of time—inorder to oscillate the touch sensor assembly within the vibration planeduring a click cycle—responsive to detection of an touch input on thetouch sensor surface 112.

In another implementation, the driver 152 is configured to selectivelycouple the inductor 124 to the power supply in a single direction topolarize the inductor 124 in a single direction only. For example, thedriver 152 can include a power transistor, and the controller 150 canselectively activate and deactivate the driver 152 to intermittentlypolarize the inductor 124, thereby intermittently causing the inductor124 to magnetically couple to the magnetic element 126 and thusoscillating the touch sensor assembly relative to the chassis 130.

However, the system 100 can include a driver 152 or other component ofany other type to selectively source electrical current to the inductor124.

3.8 Controller

As described above, the controller 150 can scan the touch sensor 110,interpret (changes in) electrical values read from the touch sensor 110as locations of inputs on the touch sensor surface 112, and thenselectively polarize the inductor 124 during a click cycle responsive todetecting a touch input on the touch sensor surface 112, such asdescribed above.

3.8.1 Touch Detection and Click Cycle Trigger

In the implementation described above in which the touch sensor 110includes a pressure-sensitive touch sensor no that outputs valuesrepresentative of locations and forces (or pressures) of touch inputsacross a touch sensor surface 112, the controller 150 can: readelectrical values (e.g., electrical resistance) between sense electrodeand drive electrode pairs 116 in the touch sensor no; detect applicationof a first input at a first location on the touch sensor surface 112based on a first change in resistance between a first sense electrodeand drive electrode pair 116, in the array of sense electrode and driveelectrode pairs 116, below the first location on the touch sensorsurface 12; and interpret a first force magnitude of the first inputbased on a magnitude of the first change in resistance. In response tothe first force magnitude of the first input exceeding a minimum forcethreshold, the controller 150 can: immediately trigger the driver 152 totransiently (i.e., temporarily) polarize the inductor 124 at (e.g.,approximately the first time of the first time); and output a firsttouch image representing the first location and the first forcemagnitude of the first input on the touch sensor surface 112 atapproximately the first time (e.g., within 50 milliseconds of detectingthe first touch on the touch sensor surface 112).

In this implementation, the controller 150 can also respond differentlyto inputs of different magnitudes on the touch sensor surface 112. Forexample, in response to the force magnitude of a touch input on thetouch sensor surface 112 exceeding both a minimum force threshold and adeep-force threshold magnitude (greater than the minimum forcethreshold), the controller 150 can trigger the driver 152 to transientlypolarize the inductor 124 for a first duration of time (e.g., 150milliseconds) and at a first frequency (e.g., 20 Hz). However, inresponse to the force magnitude of a touch input on the touch sensorsurface 112 exceeding the minimum force threshold but not exceeding thedeep-force threshold magnitude, the controller 150 can trigger thedriver 152 to transiently polarize the inductor 124 at for a secondduration less than the first direction (e.g., 50 milliseconds) and/or ata second frequency greater than the first frequency (e.g., 50 Hz).

The system 100 can implement similar methods and techniques to detectand respond to touch inputs on the touch sensor surface 112 based onchanges in capacitance between sense and drive electrode pairs in thetouch sensor 110 that defines a capacitive touch sensor 110 or based onoutputs of the touch sensor 110 of any other type.

3.8.2 Click Cycle Characteristics

During a click cycle, the controller 150 can trigger the driver 152 topolarize the inductor 124 in a single direction, as shown in FIG. 24.For example, controller 150 can trigger the driver 152 to output powerto the inductor 124 in a single pulse in the form of a square orsinusoidal waveform (e.g., over a first peak over a duration of 50milliseconds for a 10 Hz drive signal), thereby inducing a magneticfield in the inductor 124, which magnetically couples the inductor 124to the magnetic element 126 and causes the touch sensor assembly toshift—against the coupler 132—in a single direction parallel to thevibration plane. At the conclusion of this pulse, the magnetic field inthe inductor 124 can decay, thereby decoupling the inductor 124 from themagnetic element 126; the coupler 132 can then return the touch sensorassembly to its nominal position to complete the click cycle.

In another implementation shown in FIGS. 18A and 21, the controller 150triggers the driver 152 to polarize the inductor 124 in two opposingdirections. For example, during a click cycle, the controller 150 cantrigger the driver 152 (e.g., a dual-H bridge) to output power to theinductor 124 in a two pulses in the form of a square or sinusoidalwaveform (e.g., over a first peak and a second peak over a duration of50 milliseconds for a 50 Hz drive signal), thereby: inducing a firstmagnetic field in a first direction in the inductor 124, whichmagnetically couples the inductor 124 to the magnetic element 126 andcauses the touch sensor assembly to shift—against the coupler 132—in afirst direction parallel to the vibration plane over approximately thefirst half of this click cycle; and then inducing a second magneticfield in an opposite direction in the inductor 124, which magneticallycouples the inductor 124 to the magnetic element 126 and causes thetouch sensor assembly to shift—against the coupler 132—in the oppositedirection over approximately the second half of this click cycle. Uponconclusion of this second pulse, the magnetic field in the inductor 124can decay, thereby decoupling the inductor 124 from the magnetic element126; the coupler 132 can then return the touch sensor assembly to itsnominal position to complete the click cycle.

3.8.3 Drive Frequency

As described below, the touch sensor assembly can exhibit a resonant(e.g., natural) frequency. The controller 150 can trigger the driver 152to output an alternating signal to the inductor 124 at this resonantfrequency during a click cycle. For example, when the system 100 isfirst powered on, the controller 150 can execute a test routine,including oscillating a voltage applied to the inductor 124 from alow-frequency alternating voltage to a high-frequency alternatingvoltage, detecting a resonant frequency between the low frequency andthe high frequency, and storing this resonant frequency as an operatingfrequency of the system 100 during a subsequent session at the device.

In one implementation, the mass of the touch sensor assembly and theelasticity of the coupler 132 are tuned to exhibit a particular resonantfrequency proximal a frequency of a mechanical “click” or keyboardkeystroke. In this implementation, the controller 150 can trigger thedriver 152 to drive the inductor 124 with an alternating signal at thisparticular resonant frequency during a click cycle.

Alternatively, as described above, the controller 150 can trigger thedriver 152 to drive the inductor 124 with an alternating signal at atarget frequency distinct from the resonant frequency during the clickcycle. In this implementation, the driver 152 can output an alternatingcurrent oscillating at a target frequency; when thus polarized, theinductor 124 can output a magnetic field that oscillates at the targetfrequency. As described above, the inductor 124 can magnetically coupleto the magnetic element 126, including selectively attracting andrepelling the magnetic element 126 to oscillate the touch sensor 110 inthe vibration plane and relative to the chassis 130. The controller 150and the driver 152 can continue to alternate polarity of the inductor124 in order to vibrate the touch sensor assembly over the duration ofthe click cycle. Upon expiration of the click cycle, the controller 150can trigger the driver 152 to decouple the inductor 124 from the powersupply and thus halt vibration of the touch sensor assembly.

However, the controller 150 and the driver 152 can cooperate to “pulse”the polarity of the inductor 124 over one, two, or any other number ofinstances to shift or oscillate the touch sensor assembly relative tothe chassis 130 during a click cycle.

3.8.4 Paused Touch Sensor Scan

Furthermore, the magnetic field generated by the inductor 124 whenpolarized by the controller 150 or driver 152 during a click cycle maycreate noise in the touch sensor 110. Therefore, the controller 150 cansystematically discard data read from the touch sensor 110 during aclick cycle (and during some time after a click cycle, such as 10milliseconds after a click cycle, at which time the magnetic field inthe inductor 124 may have decayed sufficiently to yield less than amaximum noise in the touch sensor 110).

Alternatively, the controller 150 can disable scanning of the touchsensor no during (and slightly after) a click cycle. For example, thecontroller 150 can: read electrical values between sense electrode anddrive electrode pairs 116 in the touch sensor no during a sequence ofscan cycles; generate a sequence of touch images for the sequence ofscan cycles based on electrical values between sense electrode and driveelectrode pairs 116 in the touch sensor no; and detect a touch input onthe touch sensor surface 112 based on a value stored in a last touchimage in the sequence of scan cycles. Then, in response to detecting atouch input on the touch sensor surface 112, the controller 150 can:trigger the driver 152 to transiently polarize the inductor 124 during aclick cycle following the last scan cycle; delay a next scan cycleduring the click cycle; and then initiate the next scan cycle inresponse to conclusion of the click cycle.

Furthermore, in this implementation, in response to detecting a newtouch input on the touch sensor surface 112 and prior to executing aclick cycle accordingly, the controller 150 can: generate a touch imagedepicting this touch input; store this touch image; initiate the clickcycle as described above; output this touch image to a processor orother connected device; and continue to output this same stored touchimage at a consistent, specified sampling rate (e.g., 30 Hz, 50 Hz)until the click cycle is complete and the magnetic field in the inductor124 sufficiently decayed. The process can then resume sampling the touchsensor 110, generating new touch images based on data read from thetouch sensor 110, and outputting these touch images to the processor orother device at the specified sampling rate.

3.8.5 Inductor for Force Magnitude

In one variation, the controller 150 monitors current moving through theinductor 124 and/or voltage change across the inductor 124—outside of aclick cycle—and estimates a force applied to the touch sensor surface112 based on this current or voltage change and a known elasticity (orstiffness, etc.) of the coupler 132. The controller 150 can thenselectively execute a click cycle if this force exceeds a minimum forcethreshold, as described above. Additionally or alternatively, thecontroller 150 can label or integrate this force estimate into theconcurrent touch image and serve this force-enhanced touch image to aprocessor or other connected device.

In one example, the controller 150: reads electrical values betweensense electrode and drive electrode pairs 116 in the touch sensor 110during a scan cycle; samples a voltage across the inductor 124 duringthe scan cycle; and repeats these processes on a regular interval (e.g.,at a rage of 30 Hz, 50 Hz). In this example, the controller 150 can thendetect a touch input at a first location on the touch sensor surface 112based on a change in electrical value between a first sense electrodeand drive electrode pair 116—in the touch sensor 110 and arranged belowthe first location on the touch sensor surface 112—during a current scancycle; and then transform a change in voltage across the inductor 124during this scan cycle into a force magnitude of the touch input appliedto the touch sensor surface 112. In particular, the controller 150 cantransform the change in voltage across the inductor 124 into a verticaldisplacement of the touch sensor assembly and then transform thisvertical displacement into a force applied to the touch sensor surface112 during this scan cycle based on a stored spring model—linking forceand displacement—for the coupler 132. The controller 150 can then:generate a touch image—representing the first location and the forcemagnitude of the touch input—for the scan cycle; and trigger the driver152 to polarize the inductor 124 to oscillate the substrate 114 in thevibration plane relative to the chassis 130 in response to the forcemagnitude of the touch input—derived from the change in voltage acrossthe inductor 124—exceeding a threshold magnitude.

In this example, the controller 150 can also: integrate the voltageacross the inductor 124—outside of click cycles—over time; detectapplication of an input of sufficient force on the touch sensor surface112 to trigger a click cycle if the integral of voltage across theinductor 124 exceeds a threshold voltage-time value; and detectretraction of an input from the touch sensor surface 112 when theintegral of voltage across the inductor 124 drops below this thresholdvoltage-time value (or below a lower, threshold input-retractionvoltage-time value in order to implement hysteresis techniques).Furthermore, the system 100 can: implement methods and techniquessimilar to those described above to transform a current voltage-timevalue of the inductor 124 into a force magnitude of an input on thetouch sensor surface 112 during a current scan cycle; label a touchimage for this scan cycle with this force magnitude; and repeat thisprocess for each subsequent scan cycle (outside of click cycles executedby the system 100).

Furthermore, in the implementation described below in which the system100 includes multiple inductor 124-magnetic element 126 pairs, thecontroller 150 can: implement similar methods and techniques to estimatevertical displacement of the touch sensor assembly over between eachinductor 124-magnetic element 126 pair; transform these verticaldisplacements into force applied over each inductor 124-magnetic element126 pair; and interpolate forces applied across the touch sensor surface112 based on these derived forces over the inductor 124-magnetic element126 pairs. The controller 150 can then merge these interpolated forceswith a concurrent touch image generated based on data read from thetouch sensor 110, such as by labeling individual inputs represented inthe touch image with estimated forces on the touch sensor surface 112.

3.9 Configurations

Generally, the touch sensor 110, the substrate 114, the magnetic element126, the controller 150, the driver 152, the coupled, etc. can bearranged in various configurations.

3.9.1 Suspended Substrate in Trackpad Cavity

In one configuration shown in FIGS. 17A, 17B, 18A, 18B, and 20A thesystem 100 is integrated into a chassis 130 that defines a component ofa mobile computer (e.g., a “B-side” of a laptop computer) and includes atrackpad cavity 134, such as adjacent a keyboard including mechanicalkeys. In this configuration: the magnetic element 126 is arranged in abase of the trackpad cavity 134; and the coupler 132 locates thesubstrate 114 with the trackpad cavity 134 such that the inductor 124 isapproximately centered over the magnetic element 126. The touch sensorsurface 112 can thus span the trackpad cavity 134.

In this configuration, the substrate 114 can form a rigid backingarranged across the touch sensor 110 opposite the touch sensor surface112 and can support the touch sensor 110 against deflection responsiveto depression of an object (e.g., a finger, a stylus) on the touchsensor surface 112. In one example, the coupler 132 includes a set ofelastomeric grommets configured to suspend the substrate 114 across thetrackpad cavity 134 thus defined by the chassis 130. Each grommet canthus be compliant in the vibration plane and can return the substrate114 to a center position within the trackpad cavity 134 responsive todepolarization of the inductor 124. For example, the coupler 132 caninclude a set of four elastomeric (e.g., rubber, foam) grommets arrangednear the four corners of the substrate 114 and that cooperate to suspendthe substrate 114 and the touch sensor 110 across the trackpad cavity134. Therefore, in this configuration, the coupler 132 can be:interposed between the chassis 130 and the substrate 114; bonded orfastened to the chassis 130 and the substrate 114; configured to deformin the vibration plane responsive to polarization of the inductor 124that produces a transient magnetic field at the inductor 124 thatinteracts with a magnetic field of the magnetic element 126 to yield aforce between the inductor 124 and the magnetic element 126 in thevibration plane; configured return the substrate 114 to a centerposition relative to the chassis 130 responsive to depolarization of theinductor 124; and configured to transfer a vertical force applied to thetouch sensor surface 112 into the chassis 130.

Therefore, in this configuration, the coupler 132 can function to setand (approximately) maintain a gap between the inductor 124 and themagnetic element 126.

3.9.2 Sliding Surface

In another configuration shown in FIG. 20B, the substrate 114 rests onand slides over a bearing surface in the base of the trackpad cavity134, such as: a continuous, planar bearing surface; a discontinuous,planar bearing surface (e.g., a planar surface with relief channels toreduce stiction between the substrate 114 and the bearing surface); or aset of bushings (e.g., polymer pads) or bearings (e.g., steelball-bearings) offset above and distributed across the base of thetrackpad cavity 134.

In one example: the trackpad cavity 134 defines a planar base surfaceparallel to the vibration plane; the magnetic element 126 is retained inthe base of the trackpad cavity 134 below the planar base surface; andthe substrate 114 includes a flexible circuit board arranged over and incontact with the planar base surface, configured to slide over theplanar base surface parallel to the vibration plane, and configured totransfer a vertical force applied to the touch sensor surface 112 intothe chassis 130. In this example, the chassis 130 can thus rigidlysupport the touch sensor 110 through the substrate 114.

In this configuration: the magnetic element 126 can be embedded in thebase of the trackpad cavity 134; the system 100 can further include alow-friction layer 136 arranged over the base of the cavity 134 andtherefore interposed between the magnet element and the inductor 124;and the inductor 124 can be recessed in the inner face of the substrate114 (or the inner face of the substrate 114 can otherwise define aplanar surface) such that the inner face can run smoothly over thelow-friction layer 136, as shown in FIGS. 20A and 20B. In particular,the low-friction layer 136 can be configured to: prevent direct contactbetween the magnet element and the inductor 124; and facilitate smoothmotion of the substrate 114—and the touch sensor assembly moregenerally—over the base of the cavity 134 and parallel to the vibrationplane. For example, the low-friction layer 136 can include apolytetrafluoroethylene (or “PTFE”) film arranged between the magneticelement 126 and the inductor 124. Alternatively, the low-friction layer136 can be arranged across the inner face of the substrate 114 and overthe inductor 124, as shown in FIG. 20B.

Furthermore, in this configuration, the coupler 132 can include a springelement configured to center the flexible circuit board within thecavity 134 responsive to depolarization of the inductor 124 during aclick cycle. In another example, the coupler 132 can include a flexureformed on or physically coextensive with the flexible circuit board ofthe substrate 114, extending onto and retained at chassis 130, and thusfunctioning to re-center the touch sensor assembly relative to themagnetic element 126 upon conclusion of a click cycle. In yet anotherexample, in this configuration (and in the foregoing configurations),the coupler 132 can include a flexible membrane (e.g., a seal) arrangedabout a perimeter of the touch sensor surface 112, interposed betweenthe touch sensor 110 and an interior wall of the trackpad cavity 134,and configured to seal an interstice between the touch sensor 110 andthe trackpad cavity 134, such as from moisture and/or dust ingress.

3.9.3 Controller Mounted to Substrate

In the foregoing configurations: the controller 150 and the driver 152are mounted to the substrate 114, such as opposite the touch sensor 110(on the inner face of the substrate 114); and the system 100 furtherincludes a flexible circuit extending between the substrate 114 and thechassis 130 and electrically coupled to a power supply arranged in thechassis 130. Thus, in this configuration, the controller 150 can: readelectrical values between sense electrode and drive electrode pairs 116in the touch sensor 110 or otherwise sample the adjacent touch sensor110 directly; generate a sequence of touch images based on theseelectrical values between sense electrode and drive electrode pairs 116in the touch sensor 110; and then output this sequence of touch imagesto a processor arranged in the chassis 130 via the flexible circuit.Furthermore, the driver 152 can intermittently source current from thepower supply to the inductor 124 via the flexible circuit responsive totriggers from the adjacent controller 150. Thus, in this configuration,the touch sensor assembly can include the substrate 114, the touchsensor 110, (the touch sensor surface 112,) the controller 150, thedriver 152, the inductor 124, and the flexible circuit in aself-contained unit. This self-contained unit can then be installed overa cavity 134 in a chassis 130 and the flexible circuit can be connectedto a power and data port in the cavity 134 to complete assembly of thesystem 100 into this device.

In this implementation, the flexible circuit can also function as thecoupler 132 to apply an opposing force to motion of the touch sensorassembly in the vibration plane within the cavity 134 to recenter thetouch sensor assembly within the cavity 134 upon conclusion of a clickcycle.

3.9.4 Controller Mounted to Chassis

Alternatively, in the foregoing configurations: the controller 150 andthe driver 152 can be arranged in the chassis 130; and the system 100can further include a flexible circuit extending between the substrate114 and the chassis 130 and electrically coupled to the controller 150,the driver 152 and/or a power supply arranged in the chassis 130. Inthis configuration, the controller 150 can: read electrical valuesbetween sense electrode and drive electrode pairs 116 in the touchsensor 110 via the flexible circuit; generate a sequence of touch imagesbased on electrical values between sense electrode and drive electrodepairs 116 in the touch sensor 110; and output this sequence of touchimages to a processor arranged in the chassis 130, such as directly tothe processor arranged adjacent the controller 150 on a motherboardmounted in the chassis 130. In this configuration, the driver 152 canintermittently source current from the power supply to the inductor 124via the flexible circuit responsive to a trigger from the controller150.

3.9.5 Inverted Inductor and Magnetic Element

In yet another configuration, the inductor 124 is rigidly coupled to thecavity 134, and the magnetic element 126 is coupled to (e.g., bonded to,embedded in, fastened to) the substrate 114. For example, in thisconfiguration, the inductor 124 can be soldered to a motherboard orother circuit board arranged in the chassis 130, and the touch sensorassembly—including the magnetic element 126—can be arranged over themotherboard or other circuit board with the magnetic element 126approximately centered over the inductor 124.

3.10 Multiple Vibrators

In this variation, the system 100 can also include multiple inductor andmagnetic element pairs. In one example shown in FIG. 25, the system 100includes: a first inductor 124 arranged proximal a first edge of thesubstrate 114; and a first magnetic element 126 arranged in the chassis130 under the first inductor 124 and thus near the first edge of thesubstrate 114. In this example, the system 100 can also include: asecond magnetic element 127 rigidly coupled to the chassis 130 andoffset from the first magnetic element 126; and a second inductor 125coupled to the substrate 114 below the touch sensor surface 112,arranged proximal a second edge of the substrate 114 opposite the firstedge, and configured to magnetically couple to the second magneticelement 127. Furthermore, in this example, the controller 150 can:selectively polarize the first inductor 124 responsive to detection ofthe touch input on the touch sensor surface 112 proximal the first edgeof the substrate 114 to oscillate the substrate 114 in the vibrationplane relative to the chassis 130 with peak energy perceived proximalthis first edge of the substrate 114; and selectively polarize thesecond inductor 125 responsive to detection of a second touch input onthe touch sensor surface 112 proximal the second edge of the substrate114 to oscillate the substrate 114 in the vibration plane relative tothe chassis 130 with peak energy perceived proximal this second edge ofthe substrate 114.

In a similar implementation, the system 100 can include a firstvibrator—as described above—and a second inductor-second magneticelement pair that cooperates with the first inductor-magnetic elementpair to oscillate the touch sensor 110. In this variation, the firstinductor-magnetic element pair can include a coil mounted to thesubstrate 114 offset to the right of the center of mass of the touchsensor 110 by a first distance as shown in FIG. 25. The firstinductor-magnetic element pair can also include an array of magnetsaligned in a row under the inductor 124. The array of magnets cancooperate with the inductor 124 of the first inductor-magnetic elementpair to define an axis of vibration of the first inductor-magneticelement pair. The second inductor-second magnetic element pair caninclude a coil mounted to the substrate 114 offset to the left of thecenter of mass of the touch sensor no by a second distance as shown inFIG. 25. The second inductor-second magnetic element pair can alsoinclude an array of magnets aligned in a row. The array of magnets cancooperate with the inductor 124 of the second inductor-second magneticelement pair to define an axis of vibration of the secondinductor-second magnetic element pair.

In one implementation, the array of magnets of the firstinductor-magnetic element pair can be arranged in a row parallel thearray of magnets of the second inductor-second magnetic element pairsuch that the axis of vibration of the first inductor-magnetic elementpair is parallel to the axis of vibration of the second inductor-secondmagnetic element pair. In this implementation, the inductor 124 of thefirst inductor-magnetic element pair can be mounted to the substrate 114offset from the center of mass of the touch sensor no by the firstdistance equal to the second distance between the inductor 124 of thesecond inductor-second magnetic element pair and the center of mass.Therefore, a midpoint between the inductor 124 of the firstinductor-magnetic element pair and the inductor 124 of the secondinductor-second magnetic element pair can be coaxial with the center ofmass. Therefore, the first inductor-magnetic element pair and secondinductor-second magnetic element pair can cooperate to vibrate the touchsensor 110 along an overall axis of vibration that extends parallel theaxis of vibration of the first magnet and the axis of vibration of thesecond magnet and through the center of mass of the touch sensor 110.

The controller 150 can drive the first inductor-magnetic element pair(hereinafter the “first vibrator”) to oscillate the touch sensor 110 ata first frequency and the second inductor-second magnetic element pair(hereinafter the “second vibrator”) to oscillate at a similar frequencyin phase with vibration of the first vibrator. Therefore, the first andsecond vibrators can cooperate to oscillate the touch sensor 110linearly along the overall axis of vibration. However, the controller150 can additionally or alternatively drive the first vibrator tooscillate the touch sensor 110 at the first frequency and the secondvibrator to oscillate at a second frequency distinct from the firstfrequency and/or out of phase with vibration of the first vibrator.Therefore, the first and second vibrators can cooperate to rotate thetouch sensor 110—within a plane parallel the touch sensor surface112—about the center of mass.

Additionally or alternatively, the controller 150 can selectively driveeither the first vibrator or the second vibrator to oscillate at aparticular time. The controller 150 can selectively (and exclusively)drive the first vibrator to mimic a sensation of a click over a sectionof the touch sensor 110 adjacent the first vibrator. The controller 150can alternatively drive the second vibrator to mimic a sensation of aclick over a section of the touch sensor 110 adjacent the secondvibrator while minimizing vibration over a section of the touch sensor110 adjacent the first vibrator. For example, the controller 150 canselectively drive the first vibrator to execute the click cycle in orderto mimic the sensation of a click on the right side of the touch sensor110 (or a “right” click) while the second vibrator remains inactive.

However, the controller 150 can also drive the first vibrator tooscillate according to a particular vibration waveform. Simultaneously,the controller 150 can drive the second vibrator to oscillate accordingto a vibration waveform out of phase (e.g., 180 degrees out of phase)with the particular vibration waveform of the first vibrator. Forexample, the second vibrator can output the vibration waveform of anamplitude smaller than the amplitude of the particular vibrationwaveform. In this example, the vibration waveform of the second vibratorcan also be 180 degrees out of phase with the particular vibrationwaveform of the first vibrator. Therefore, the second vibrator can beconfigured to counteract (or decrease the amplitude of) the particularvibration waveform output by the first vibrator.

The systems and methods described herein can be embodied and/orimplemented at least in part as a machine configured to receive acomputer-readable medium storing computer-readable instructions. Theinstructions can be executed by computer-executable componentsintegrated with the application, applet, host, server, network, website,communication service, communication interface,hardware/firmware/software elements of a user computer or mobile device,wristband, smartphone, or any suitable combination thereof. Othersystems and methods of the embodiment can be embodied and/or implementedat least in part as a machine configured to receive a computer-readablemedium storing computer-readable instructions. The instructions can beexecuted by computer-executable components integrated bycomputer-executable components integrated with apparatuses and networksof the type described above. The computer-readable medium can be storedon any suitable computer readable media such as RAMs, ROMs, flashmemory, EEPROMs, optical devices (CD or DVD), hard drives, floppydrives, or any suitable device. The computer-executable component can bea processor but any suitable dedicated hardware device can(alternatively or additionally) execute the instructions.

As a person skilled in the art will recognize from the previous detaileddescription and from the figures and claims, modifications and changescan be made to the embodiments of the invention without departing fromthe scope of this invention as defined in the following claims.

We claim:
 1. A system for detecting and responding to touch inputs withhaptic feedback comprising: a printed circuit board comprising: an outerlayer; a set of inner layers; an array of drive electrodes and senseelectrodes arranged across the outer layer; and an inductor comprising amulti-layer planar spiral coil fabricated across the set of innerlayers; a tactile surface arranged over the printed circuit board; apressure-sensitive layer interposed between the printed circuit boardand the tactile surface and exhibiting changes in local bulk electricalcharacteristics responsive to variations in magnitude of force appliedto the tactile surface; a magnetic element rigidly coupled to a chassis;a coupler coupling the printed circuit board to the chassis, compliantwithin a vibration plane, and locating the inductor approximately overthe magnetic element; and a controller configured to intermittentlypolarize the inductor responsive to detection of a touch input on thetactile surface to oscillate the printed circuit board in the vibrationplane relative to the chassis.
 2. The system of claim 1: wherein themagnetic element comprises: a first magnet defining a first polarity;and a second magnet adjacent and laterally offset from the first magnetand defining a second polarity opposite the first polarity; wherein thecoupler is compliant within the vibration plane parallel to the tactilesurface; and wherein the inductor is configured to magnetically coupleto the magnetic element when polarized by the controller to oscillatethe printed circuit board in the vibration plane parallel to the tactilesurface during application of the touch input on the tactile surface. 3.The system of claim 1: wherein the pressure-sensitive layer exhibitschanges in local bulk resistance responsive to variations in magnitudeof force applied to the tactile surface; further comprising a driverconfigured to intermittently source current to the inductor responsiveto a trigger from the controller; and wherein the controller isconfigured to: detect application of a first input at a first locationon the tactile surface based on a first change in resistance between afirst sense electrode and drive electrode pair, in the array of driveelectrodes and sense electrodes, below the first location on the tactilesurface; interpret a first force magnitude of the first input based on amagnitude of the first change in resistance; trigger the driver totransiently polarize the inductor in response to the first forcemagnitude of the first input exceeding a minimum force threshold; andoutput a first touch image representing the first location and the firstforce magnitude of the first input on the tactile surface atapproximately the first time.
 4. The system of claim 3, wherein thecontroller: triggers the driver to transiently polarize the inductor atapproximately the first time for a first duration in response to thefirst force magnitude of the first input exceeding the minimum forcethreshold and a deep-input threshold magnitude; and triggers the driverto transiently polarize the inductor at approximately the first time fora second duration less than the first direction in response to the firstforce magnitude of the first input exceeding the minimum force thresholdand falling below the deep-input threshold magnitude.
 5. The system ofclaim 3, wherein the controller: triggers the driver to transientlypolarize the inductor at approximately the first time at a firstfrequency in response to the first force magnitude of the first inputexceeding the minimum force threshold and a deep-input thresholdmagnitude; and triggers the driver to transiently polarize the inductorat approximately the first time at a second frequency greater than thefirst frequency in response to the first force magnitude of the firstinput exceeding the minimum force threshold and falling below thedeep-input threshold magnitude.
 6. The system of claim 1: furthercomprising the chassis, the chassis comprising a component of a mobilecomputer and defining a touch sensor cavity; wherein the magneticelement is arranged in a base of the touch sensor cavity; and whereinthe coupler locates the printed circuit board within the touch sensorcavity with the inductor approximately centered over the magneticelement and the tactile surface spanning the touch sensor cavity.
 7. Thesystem of claim 6: wherein the magnetic element is retained within arecess in a touch sensor cavity in the chassis; wherein the printedcircuit board is arranged in the touch sensor cavity; and wherein thecoupler comprises a flexible membrane arranged about a perimeter of thetactile surface, interposed between the printed circuit board and aninterior wall of the touch sensor cavity, and configured to seal aninterstice between the printed circuit board and the touch sensor cavityfrom dust ingress.
 8. The system of claim 1: wherein the magneticelement is retained within a recess in a touch sensor cavity in thechassis; wherein the printed circuit board: is arranged in the touchsensor cavity; is configured to slide over a planar surface, defined bya base of the touch sensor cavity, parallel to the vibration plane; andtransfers a vertical force applied to the tactile surface into thechassis; and wherein the coupler comprises a spring element configuredto center the flexible circuit board within the touch sensor cavityresponsive to depolarization of the inductor.
 9. The system of claim 1:further comprising a flexible circuit extending between the printedcircuit board and the chassis and electrically coupled to a power supplyarranged in the chassis; wherein the controller: is mounted to theprinted circuit board; reads electrical values between drive electrodeand sense electrode pairs in the array of drive electrodes and senseelectrodes; generates a sequence of touch images based on electricalvalues between drive electrode and sense electrode pairs in the array ofdrive electrodes and sense electrodes; and outputs the sequence of touchimages, via the flexible circuit, to a processor arranged in thechassis; and further comprising a driver mounted to the printed circuitboard and configured to intermittently source current from the powersupply to the inductor via the flexible circuit responsive to a triggerfrom the controller.
 10. The system of claim 1: further comprising aflexible circuit extending between the printed circuit board and thechassis and electrically coupled to a power supply arranged in thechassis; wherein the controller: is arranged in the chassis; readselectrical values between drive electrode and sense electrode pairs, inthe array of drive electrodes and sense electrodes, via the flexiblecircuit; generates a sequence of touch images based on electrical valuesbetween drive electrode and sense electrode pairs in the array of driveelectrodes and sense electrodes; and outputs the sequence of touchimages to a processor arranged in the chassis; and further comprising adriver arranged in the chassis and configured to intermittently sourcecurrent from the power supply to the inductor via the flexible circuitresponsive to a trigger from the controller.
 11. The system of claim 1:wherein the magnetic element comprises a Halbach array; and wherein theinductor comprises a set of planar spiral coil sections fabricatedacross the set of inner layers, each planar spiral coil section in theset of planar spiral sections defining a toroidal geometry elongatedparallel to a long axis of the magnetic element.
 12. The system of claim1: further comprising a driver configured to intermittently sourcecurrent to the inductor responsive to a trigger from the controller; andwherein the controller is configured to: read electrical values betweendrive electrode and sense electrode pairs in the array of driveelectrodes and sense electrodes during a first scan cycle; generate afirst touch image for the first scan cycle based on electrical valuesbetween drive electrode and sense electrode pairs in the array of driveelectrodes and sense electrodes during the first scan cycle; detect thetouch input on the tactile surface during the first scan cycle based ona value stored in the first touch image; in response to detecting thetouch input on the tactile surface: trigger the driver to transientlypolarize the inductor during the click cycle following the first scancycle; and delay a second scan cycle, succeeding the first scan cycle,during the click cycle; and initiate the second scan cycle in responseto conclusion of the click cycle.
 13. The system of claim 1: wherein themulti-layer planar spiral coil of the inductor is fabricated in a firstregion of the printed circuit board; wherein the printed circuit boardfurther comprises a second inductor comprising a second multi-layerplanar spiral coil fabricated across the set of inner layers and in asecond region of the printed circuit board; further comprising a secondmagnetic element rigidly coupled to the chassis and offset from themagnetic element; and wherein the controller is configured to:selectively polarize the inductor responsive to detection of the touchinput on the tactile surface over the first region of the printedcircuit board to oscillate the printed circuit board in the vibrationplane relative to the chassis; and selectively polarize the secondinductor responsive to detection of a second touch input on the tactilesurface over the second region of the printed circuit board to oscillatethe printed circuit board in the vibration plane relative to thechassis.
 14. A system for detecting and responding to touch inputs withhaptic feedback comprising: a printed circuit board comprising: an outerlayer; a set of inner layers; an array of sense electrodes arrangedacross the outer layer; and an inductor comprising a multi-layer planarspiral coil fabricated across the set of inner layers; a tactile surfacearranged over the printed circuit board; a magnetic element rigidlycoupled to a chassis; a coupler coupling the printed circuit board tothe chassis, compliant within a vibration plane, and locating theinductor approximately over the magnetic element; and a controllerconfigured to intermittently polarize the inductor during a click cycleresponsive to detection of a touch input on the tactile surface tooscillate the printed circuit board in the vibration plane relative tothe chassis.
 15. The system of claim 14: wherein the printed circuitboard further comprises an array of drive electrodes arranged across theouter layer; further comprising a pressure-sensitive layer interposedbetween the printed circuit board and the tactile surface and exhibitingchanges in local bulk resistance responsive to variations in magnitudeof force applied to the tactile surface; and wherein the controller isconfigured to: detect application of a first input at a first locationon the tactile surface based on a first change in resistance between afirst sense electrode and drive electrode pair, in the array of driveelectrodes and in the array sense electrodes, below the first locationon the tactile surface; interpret a first force magnitude of the firstinput based on a magnitude of the first change in resistance; trigger adriver to transiently polarize the inductor in response to the firstforce magnitude of the first input exceeding a minimum force threshold;and output a first touch image representing the first location and thefirst force magnitude of the first input on the tactile surface atapproximately the first time.
 16. The system of claim 14, wherein thecontroller is configured to: read electrical values from the array ofsense electrodes during a scan cycle; detect the touch input at a firstlocation on the tactile surface based on a change in electrical valueread from a sense electrode, in the array of sense electrodes, proximalthe first location on the tactile surface; detect a change in voltageacross the inductor during the scan cycle; transform the change involtage across the inductor during the scan cycle into a force magnitudeof the touch input applied to the tactile surface; and triggerpolarization of the inductor to oscillate the printed circuit board inthe chassis in response to the force magnitude of the touch inputexceeding a threshold magnitude.
 17. The system of claim 16, wherein thecontroller is further configured to: generate a first touch image,representing the first location and the force magnitude of the touchinput, during the scan cycle; and output the first touch image to acomputing device.
 18. The system of claim 14, wherein the inductorcomprises a set of planar spiral coil sections fabricated across the setof inner layers, each planar spiral coil section in the set of planarspiral sections defining a toroidal geometry elongated parallel to along axis of the magnetic element.
 19. The system of claim 14, whereinthe controller is configured to trigger a driver to output a sequence oftwo current pulses approximating a square wave to the inductor over theclick cycle between 50 milliseconds and 250 milliseconds in duration.20. The system of claim 14: wherein the controller is configured to:trigger the driver to drive the inductor over a range of frequenciesbetween a low frequency and a high frequency during a test routinepreceding the click cycle; and detecting a resonant frequency of thesystem between the low frequency and the high frequency during the testroutine; and wherein the controller is configured to trigger the driverto transiently polarize the inductor at the resonant frequency duringthe click cycle responsive to detection of the touch input on thetactile surface.